ArrayAdapter und Listview - ArrayIndexOutOfBoundsException
-
26-09-2019 - |
Frage
Ich hoffe wirklich, dass jemand mir mit diesem helfen kann. Ich habe immer darauf stecken. Gelegentlich, wenn jemand meine app, wird es zwingen, schließt mit dieser Ausnahme:
java.lang.ArrayIndexOutOfBoundsException
at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:3572)
at android.widget.AbsListView.trackMotionScroll(AbsListView.java:2487)
at android.widget.AbsListView.onTouchEvent(AbsListView.java:2001)
at android.widget.ListView.onTouchEvent(ListView.java:3234)
at android.view.View.dispatchTouchEvent(View.java:3709)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:874)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:924)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:924)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:924)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1695)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1116)
at android.app.Activity.dispatchTouchEvent(Activity.java:2068)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1679)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:924)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:924)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:924)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:924)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:924)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1695)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1116)
at android.app.Activity.dispatchTouchEvent(Activity.java:2068)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1679)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1697)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4568)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)
Aber ich kann nicht herausfinden, warum. Es ist relativ selten, nicht-reproduzierbare und die Stacktrace ist völlig nutzlos, weil es nicht von meinem Code enthält.
Ist es ein Fehler in Android selbst?
Lösung
Welche Version von Android sind Sie? Von dem, was ich kann Ihr Adapter kehrt die falsche Zählung von getViewTypeCount () sagen (oder Sie ändern die Ansicht Typ Zählung dynamisch was ein großer Fehler ist.)
Andere Tipps
Zusätzlich zu dem, was Romain sagte, scheint es, dass die größte Bedeutung zu sein Ansichtstyp kleiner ist als die Ansicht Typen zählen.
hatte ich zwei Ansichtstypen definiert (für welchen Gründen auch immer) mit 1
und 2
und kehrte 2
in getViewTypeCount()
, die mir die gleiche Ausnahme gab wie oben. Re-Indizierung der Typen 0
und 1
das Problem behoben.