ArrayAdapter y ListView – ArrayIndexOutOfBoundsException

Realmente espero que alguien me ayude con esto. He estado atrapado en ella para siempre. De vez en cuando, cuando alguien está usando mi aplicación, forzará cerrar con esta excepción:

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) 

Sin embargo, no puedo entender por qué. Es relativamente raro, no reproducible, y el stacktrace es completamente inútil porque no incluye ninguno de mi código.

¿Es un error en el propio Android?

¿Qué versión de Android está ejecutando? De lo que puedo decirle a su adaptador está devolviendo el recuento equivocado de getViewTypeCount () (o está cambiando el tipo de vista de forma dinámica, lo cual es un gran error).

Además de lo que dijo Romain , parece importante que el tipo de vista más grande sea más pequeño que el tipo de vista.

Tenía dos tipos de vista definidos (por lo que alguna vez razón) con 1 y 2 y devuelto 2 en getViewTypeCount() que me dio la misma excepción que anteriormente. La re-indexación de los tipos a 0 y 1 resolvió el problema.

  • Vista de lista con elementos de vista personalizados con superposiciones parciales (Android)
  • Vincular inconsistencia
  • Comportamiento extraño con selectAllOnFocus cuando EditText está en ListView
  • En Android SQLite, trabajar directamente con Cursor es más eficiente en la memoria que crear objetos de modelo?
  • Listview con webview
  • Vista de lista de Android dentro de un fragmento
  • ¿Cómo recargar / refrescar el fragmento que ya se ha mostrado una vez?
  • Reproducción de vídeo con textureview en recyclerview
  • Agregar elemento a ListView sin recargar
  • Android StackView tipo de diseño con desplazamiento horizontal
  • ListView 2 filas e icono por artículo en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.