Índice de Android fuera de límites de error sin código de aplicación en el seguimiento de pila
Éste es el seguimiento de la pila:
java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0 at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257) at java.util.ArrayList.get(ArrayList.java:311) at android.widget.HeaderViewListAdapter.isEnabled(HeaderViewListAdapter.java:164) at android.widget.ListView.dispatchDrawWithExcessScroll_Default(ListView.java:3354) at android.widget.ListView.dispatchDraw(ListView.java:3054) at android.view.View.draw(View.java:6936) at android.widget.AbsListView.draw(AbsListView.java:3022) at android.view.ViewGroup.drawChild(ViewGroup.java:1646) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.View.draw(View.java:6936) at android.view.ViewGroup.drawChild(ViewGroup.java:1646) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.ViewGroup.drawChild(ViewGroup.java:1644) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.ViewGroup.drawChild(ViewGroup.java:1644) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.ViewGroup.drawChild(ViewGroup.java:1644) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.ViewGroup.drawChild(ViewGroup.java:1644) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.ViewGroup.drawChild(ViewGroup.java:1644) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.ViewGroup.drawChild(ViewGroup.java:1644) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.ViewGroup.drawChild(ViewGroup.java:1644) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.View.draw(View.java:6936) at android.view.ViewGroup.drawChild(ViewGroup.java:1646) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.ViewGroup.drawChild(ViewGroup.java:1644) at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) at android.view.View.draw(View.java:6936) at android.widget.FrameLayout.draw(FrameLayout.java:357) at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1904) at android.view.ViewRoot.draw(ViewRoot.java:1527) at android.view.ViewRoot.performTraversals(ViewRoot.java:1263) at android.view.ViewRoot.handleMessage(ViewRoot.java:1865) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:3687) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) at dalvik.system.NativeStart.main(Native Method)
No tengo absolutamente ninguna idea cómo reproducir este error. He intentado hacer clic al azar en cada ListView
en mi aplicación y nunca fue capaz de reproducir este error.
- Android Actualiza ListActivity desde BaseAdapter
- ListView con OnItemClickListener android
- Mostrar la vista vacía cuando ListView está vacío
- ¿Cómo puedo hacer que mis filas listview tengan diferentes alturas
- Cómo obtener un selector de elementos ListView android para usar state_checked
Esto sólo ocurrió después de que la aplicación se envió al mercado. Nunca he visto este error antes.
La peor parte es que no tiene código de mi aplicación por lo que ni siquiera sé lo que el usuario estaba haciendo cuando esto sucedió.
¿Alguna vez alguien vio este tipo de error?
¿Alguien tiene una pista donde empezar a arreglar esto?
- Android: Desactivar la carga perezosa de listview
- Android: deshabilita la selección ListView
- Android ListView: No se resalta en el tacto, pero funciona cuando uso la trackball
- Firebase para cargar más elementos en desplazamiento (Android)
- Cómo utilizar View Holder al tener filas diferentes en un ListView
- Elemento expandible en la lista de Android
- Implementar desplazamiento sin fin en ListView
- BaseAdapter ListView Filtrado de Android
Si está ejecutando esto en un teléfono Samsung, eche un vistazo a este StackOverflow Preguntas y respuestas:
ListView aleatorio IndexOutOfBoundsException en Froyo
También me encontré con la misma excepción en un Nexus 5 que ejecuta Lollipop. Esto ocurriría si yo:
- Desenchufar el dispositivo mientras se muestra una lista
- Deje que el dispositivo se duerma
- Enchufó el dispositivo de nuevo, haciendo que el contenido de la lista para ser actualizado
La adición de un pie de página ficticio no lo arregló, simplemente cambió el error a Invalid index 1, size is 1
🙂 … pero gracias a @AlexD tenía una pista de dónde buscar soluciones.
En mi caso, la llamada a list.setFooterDividersEnabled(false)
después de la creación de ListView crea con éxito el bloqueo.
Tengo el mismo error en algún momento cuando listview está vacío. Después de mirar el código fuente he encontrado la línea que se bloquea:
return mFooterViewInfos.get(adjPosition - adapterCount).isSelectable
Como puedes ver, no hay cheque si mFooterViewInfos está vacío, así que mi solución para este problema es simplemente agregar un pie de página ficticio:
list.addFooterView(new View(context, null, false));
Tal vez un poco tarde, pero creo que encontré solución para esto. La idea es eliminar headerView / footerView (dependiendo de lo que uses) antes de dejar fragmento / activity:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { .... getListView().addHeaderView(mHeaderView); } public void onDestroyView() { super.onDestroyView(); if (getListView().getHeaderViewsCount() > 0) { getListView().removeHeaderView(mHeaderView); } }
Tal vez su actividad se mata y luego se vuelve a crear (por ejemplo, cuando la orientación de la pantalla cambia) para que su matriz se está inicializando a cero elementos y, sin embargo, otra parte de su programa no sabe acerca de eso y esperar que la matriz para tener algunos elementos.
- GCM notificación de empuje funciona después de la aplicación de parada de la fuerza?
- Convertir una cadena en int. Establezca el int en 0 si String es null