Í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.

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?

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.

  • Problema de visualización de desplazamiento rápido con ListAdapter y SectionIndexer
  • Lista de Android Ver Arrastrar y soltar ordenar
  • Androide. RadioButtons en un ListView
  • ListView no aparece en MainActivty de mi aplicación (una imagen adjunta)
  • Cómo arrastrar un elemento de un listview y dejarlo en un textView exterior?
  • Layout_width de un ListView
  • ¿Cómo establecer la posición fija para el botón de acción flotante por encima de listview muy larga en android?
  • ¿Es posible tener siempre fastscroll habilitado en un listview?
  • ¿Cómo puedo obtener los resultados de análisis de Android Wifi en una lista?
  • ¿Cómo puedo comprobar si mi ListView ha terminado de redibujar?
  • No se puede implantar OnItemClickListener en android-swipelistview
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.