MPAndroidChart icon indicating copy to clipboard operation
MPAndroidChart copied to clipboard

java.lang.IndexOutOfBoundsException while dragging/ zooming

Open kds2 opened this issue 7 years ago • 4 comments

Summary App crash while dragging/ zooming a live data line chart.

java.lang.IndexOutOfBoundsException: Index: 59, Size: 59 at java.util.ArrayList.get(ArrayList.java:437) at com.github.mikephil.charting.data.DataSet.getEntryForIndex(DataSet.java:294) at com.github.mikephil.charting.renderer.LineChartRenderer.drawCircles(LineChartRenderer.java:660) at com.github.mikephil.charting.renderer.LineChartRenderer.drawExtras(LineChartRenderer.java:594) at com.github.mikephil.charting.charts.BarLineChartBase.onDraw(BarLineChartBase.java:255) at android.view.View.draw(View.java:20250) at android.view.View.updateDisplayListIfDirty(View.java:19125) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4323) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4296) at android.view.View.updateDisplayListIfDirty(View.java:19085) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4323) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4296) at android.view.View.updateDisplayListIfDirty(View.java:19085) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4323) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4296) at android.view.View.updateDisplayListIfDirty(View.java:19085) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4323) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4296) at android.view.View.updateDisplayListIfDirty(View.java:19085) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4323) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4296) at android.view.View.updateDisplayListIfDirty(View.java:19085) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4323) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4296) at android.view.View.updateDisplayListIfDirty(View.java:19085) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4323) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4296) at android.view.View.updateDisplayListIfDirty(View.java:19085) at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:686) at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:692) at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:801) at android.view.ViewRootImpl.draw(ViewRootImpl.java:3327) at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3124) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2493) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1468) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7208) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1016) at android.view.Choreographer.doCallbacks(Choreographer.java:828) at android.view.Choreographer.doFrame(Choreographer.java:763) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1002) at android.os.Handler.handleCallback(Handler.java:898) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:198) at android.app.ActivityThread.main(ActivityThread.java:6716) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Expected Behavior No crash

Device (please complete the following information):

  • Device: Nokia 7
  • Android Version 8.1.0
  • Library Version 3.1.0-alpha

kds2 avatar Feb 22 '19 10:02 kds2

Same behavior on version 3.0.3 I think it may be related to the new sdk versions ~~or new proguard~~. My code worked correctly a year ago with version 3.0.3

  • compileSdkVersion 28
  • minSdkVersion 22
  • targetSdkVersion 28
  • implementation 'com.github.PhilJay: MPAndroidChart: v3.0.3'
  • Gradle-4.10.1
  • Android Version 8.1

java.lang.IndexOutOfBoundsException: at java.util.ArrayList.get (ArrayList.java:437) at com.github.mikephil.charting.data.DataSet.getEntryForIndex (DataSet.java:286) at com.github.mikephil.charting.utils.Transformer.generateTransformedValuesLine (Transformer.java:184) at com.github.mikephil.charting.renderer.LineChartRenderer.drawValues (LineChartRenderer.java:547) at com.github.mikephil.charting.charts.BarLineChartBase.onDraw (BarLineChartBase.java:264) at android.view.View.draw (View.java:20369) at android.view.View.buildDrawingCacheImpl (View.java:19612) at android.view.View.buildDrawingCache (View.java:19472) at android.view.View.updateDisplayListIfDirty (View.java:19291) at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4405) at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4385) at android.view.View.updateDisplayListIfDirty (View.java:19273) at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4405) at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4385) at android.view.View.updateDisplayListIfDirty (View.java:19273) at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4405) at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4385) at android.view.View.updateDisplayListIfDirty (View.java:19273) at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4405) at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4385) at android.view.View.updateDisplayListIfDirty (View.java:19273) at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4405) at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4385) at android.view.View.updateDisplayListIfDirty (View.java:19273) at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4405) at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4385) at android.view.View.updateDisplayListIfDirty (View.java:19273) at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4405) at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4385) at android.view.View.updateDisplayListIfDirty (View.java:19273) at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4405) at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4385) at android.view.View.updateDisplayListIfDirty (View.java:19273) at android.view.ThreadedRenderer.updateViewTreeDisplayList (ThreadedRenderer.java:686) at android.view.ThreadedRenderer.updateRootDisplayList (ThreadedRenderer.java:692) at android.view.ThreadedRenderer.draw (ThreadedRenderer.java:800) at android.view.ViewRootImpl.draw (ViewRootImpl.java:3501) at android.view.ViewRootImpl.performDraw (ViewRootImpl.java:3288) at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2823) at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1785) at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:7833) at android.view.Choreographer$CallbackRecord.run (Choreographer.java:911) at android.view.Choreographer.doCallbacks (Choreographer.java:723) at android.view.Choreographer.doFrame (Choreographer.java:658) at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:897) at android.os.Handler.handleCallback (Handler.java:789) at android.os.Handler.dispatchMessage (Handler.java:98) at android.os.Looper.loop (Looper.java:164) at android.app.ActivityThread.main (ActivityThread.java:6944) at java.lang.reflect.Method.invoke (Method.java) at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)

kamilj avatar Mar 10 '19 13:03 kamilj

@kds2 do you use proguard?

kamilj avatar Mar 10 '19 13:03 kamilj

proguard excluded as a cause.

kamilj avatar Mar 10 '19 13:03 kamilj

image

Exception java.lang.IndexOutOfBoundsException: Index: 3, Size: 3 at java.util.ArrayList.get (ArrayList.java:437) at com.github.mikephil.charting.data.DataSet.getEntryForIndex (DataSet.java:294) at com.github.mikephil.charting.renderer.BarChartRenderer.drawValues (BarChartRenderer.java:333) at com.github.mikephil.charting.charts.BarLineChartBase.onDraw (BarLineChartBase.java:278) at android.view.View.draw (View.java:22730) at android.view.View.updateDisplayListIfDirty (View.java:21592) at android.view.View.draw (View.java:22454) at android.view.ViewGroup.drawChild (ViewGroup.java:4551) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4310) at android.view.View.draw (View.java:22734) at android.view.View.updateDisplayListIfDirty (View.java:21592) at android.view.View.draw (View.java:22454) at android.view.ViewGroup.drawChild (ViewGroup.java:4551) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4310) at android.view.View.updateDisplayListIfDirty (View.java:21583) at android.view.View.draw (View.java:22454) at android.view.ViewGroup.drawChild (ViewGroup.java:4551) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4310) at android.view.View.draw (View.java:22734) at android.widget.ScrollView.draw (ScrollView.java:1833) at android.view.View.updateDisplayListIfDirty (View.java:21592) at android.view.View.draw (View.java:22454) at android.view.ViewGroup.drawChild (ViewGroup.java:4551) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4310) at android.view.View.updateDisplayListIfDirty (View.java:21583) at android.view.View.draw (View.java:22454) at android.view.ViewGroup.drawChild (ViewGroup.java:4551) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4310) at android.view.View.draw (View.java:22734) at androidx.viewpager.widget.ViewPager.draw (ViewPager.java:2426) at android.view.View.updateDisplayListIfDirty (View.java:21592) at android.view.View.draw (View.java:22454) at android.view.ViewGroup.drawChild (ViewGroup.java:4551) at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4310) at android.view.View.updateDisplayListIfDirty (View.java:21583) at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4535) at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4508) at android.view.View.updateDisplayListIfDirty (View.java:21550) at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4535) at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4508) at android.view.View.updateDisplayListIfDirty (View.java:21550) at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4535) at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4508) at android.view.View.updateDisplayListIfDirty (View.java:21550) at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4535) at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4508) at android.view.View.updateDisplayListIfDirty (View.java:21550) at android.view.ViewGroup.recreateChildDisplayList (ViewGroup.java:4535) at android.view.ViewGroup.dispatchGetDisplayList (ViewGroup.java:4508) at android.view.View.updateDisplayListIfDirty (View.java:21550) at android.view.ThreadedRenderer.updateRootDisplayList (ThreadedRenderer.java:590) at android.view.ThreadedRenderer.draw (ThreadedRenderer.java:651) at android.view.ViewRootImpl.draw (ViewRootImpl.java:4305) at android.view.ViewRootImpl.performDraw (ViewRootImpl.java:4010) at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:3268) at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:2079) at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:8546) at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1077) at android.view.Choreographer.doCallbacks (Choreographer.java:897) at android.view.Choreographer.doFrame (Choreographer.java:826) at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:1062) at android.os.Handler.handleCallback (Handler.java:938) at android.os.Handler.dispatchMessage (Handler.java:99) at android.os.Looper.loop (Looper.java:237) at android.app.ActivityThread.main (ActivityThread.java:8163) at java.lang.reflect.Method.invoke (Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:656) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:967)

thelou1s avatar Dec 05 '22 04:12 thelou1s