ArrayIndexOutOfBounds in FieldStatisticsView.java:210

Issue #31 new
Axel Kramer repo owner created an issue
java.lang.ArrayIndexOutOfBoundsException: 

  at de.hball.core.stat.FieldStatisticsView.redrawAll (FieldStatisticsView.java:210)

  at de.hball.core.stat.FieldStatisticsView.init (FieldStatisticsView.java:46)

  at de.hball.core.stat.FieldStatisticsView.onDraw (FieldStatisticsView.java:224)

  at android.view.View.draw (View.java:15278)

  at android.view.View.getDisplayList (View.java:14172)

  at android.view.View.getDisplayList (View.java:14214)

  at android.view.View.draw (View.java:14992)

  at android.view.ViewGroup.drawChild (ViewGroup.java:3322)

  at android.view.ViewGroup.dispatchDraw (ViewGroup.java:3158)

  at android.view.View.getDisplayList (View.java:14167)

  at android.view.View.getDisplayList (View.java:14214)

  at android.view.View.draw (View.java:14992)

  at android.view.ViewGroup.drawChild (ViewGroup.java:3322)

  at android.view.ViewGroup.dispatchDraw (ViewGroup.java:3158)

  at android.view.View.getDisplayList (View.java:14167)

  at android.view.View.getDisplayList (View.java:14214)

  at android.view.View.draw (View.java:14992)

  at android.view.ViewGroup.drawChild (ViewGroup.java:3322)

  at android.view.ViewGroup.dispatchDraw (ViewGroup.java:3158)

  at android.view.View.getDisplayList (View.java:14167)

  at android.view.View.getDisplayList (View.java:14214)

  at android.view.View.draw (View.java:14992)

  at android.view.ViewGroup.drawChild (ViewGroup.java:3322)

  at android.view.ViewGroup.dispatchDraw (ViewGroup.java:3158)

  at android.view.View.getDisplayList (View.java:14167)

  at android.view.View.getDisplayList (View.java:14214)

  at android.view.View.draw (View.java:14992)

  at android.view.ViewGroup.drawChild (ViewGroup.java:3322)

  at android.view.ViewGroup.dispatchDraw (ViewGroup.java:3158)

  at android.view.View.getDisplayList (View.java:14167)

  at android.view.View.getDisplayList (View.java:14214)

  at android.view.View.draw (View.java:14992)

  at android.view.ViewGroup.drawChild (ViewGroup.java:3322)

  at android.view.ViewGroup.dispatchDraw (ViewGroup.java:3158)

  at android.view.View.draw (View.java:15281)

  at android.widget.FrameLayout.draw (FrameLayout.java:472)

  at com.android.internal.policy.impl.PhoneWindow$DecorView.draw (PhoneWindow.java:2602)

  at android.view.View.getDisplayList (View.java:14172)

  at android.view.View.getDisplayList (View.java:14214)

  at android.view.HardwareRenderer$GlRenderer.buildDisplayList (HardwareRenderer.java:1597)

  at android.view.HardwareRenderer$GlRenderer.draw (HardwareRenderer.java:1469)

  at android.view.ViewRootImpl.draw (ViewRootImpl.java:2771)

  at android.view.ViewRootImpl.performDraw (ViewRootImpl.java:2637)

  at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2208)

  at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1251)

  at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:6560)

  at android.view.Choreographer$CallbackRecord.run (Choreographer.java:813)

  at android.view.Choreographer.doCallbacks (Choreographer.java:613)

  at android.view.Choreographer.doFrame (Choreographer.java:583)

  at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:799)

  at android.os.Handler.handleCallback (Handler.java:733)

  at android.os.Handler.dispatchMessage (Handler.java:95)

  at android.os.Looper.loop (Looper.java:146)

  at android.app.ActivityThread.main (ActivityThread.java:5653)

  at java.lang.reflect.Method.invokeNative (Native Method)

  at java.lang.reflect.Method.invoke (Method.java:515)

  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1291)

  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1107)

  at dalvik.system.NativeStart.main (Native Method)

Comments (1)

  1. Axel Kramer reporter

    Error in this line

        private void redrawAll() {
            bitmapCanvas.drawColor(Color.rgb(0x00, 0x00, 0x8B));// dark blue
    ...
    
    
    ...
            for (PositionStatData value : map.values()) {
                String positionStr = value.getPosition();  
                int pos = -1;
                try {
                    pos = Integer.valueOf(positionStr);
                } catch (NumberFormatException e) {
                    continue;
                }
                pos--;
                // int i = pos / 5;
                // int j = pos % 5;
                int goals = value.getGoals();
                int failed = value.getFailed();
                int sum = goals + failed;
                int percent = 0;
                if (sum != 0) {
                    percent = (int) (100f * goals / (sum));
                }
                if (pos == 8) {
                    bitmapCanvas.drawText(str(R.string.seven_meter) + ": ", m8p5 - scaledTextSize, m2, p);
                    bitmapCanvas.drawText(
                            Integer.toString(goals) + "/" + Integer.toString(sum) + "/" + Integer.toString(percent) + "%", m8p5
                                    - scaledTextSize, scaledTextSize + 2 + m2, p);
                } else if (pos == 2 || pos == 6) {
                    bitmapCanvas.drawText(
                            Integer.toString(goals) + "/" + Integer.toString(sum) + "/" + Integer.toString(percent) + "%", px[pos] - 2
                                    * scaledTextSize, py[pos], p);
                } else {
    >>>             bitmapCanvas.drawText(Integer.toString(goals) + "/" + Integer.toString(sum), px[pos] - scaledTextSize, py[pos], p);
                    bitmapCanvas.drawText(Integer.toString(percent) + "%", px[pos] - scaledTextSize, scaledTextSize + 2 + py[pos], p);
                }
            }
    
        }
    
  2. Log in to comment