У меня есть приложение с тоннами загрузок, и я получаю множество таких ошибок:
16783 AndroidRuntime E java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
16783 AndroidRuntime E at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
16783 AndroidRuntime E at java.util.ArrayList.get(ArrayList.java:311)
16783 AndroidRuntime E at android.widget.HeaderViewListAdapter.isEnabled(HeaderViewListAdapter.java:16
4)
16783 AndroidRuntime E at android.widget.ListView.dispatchDrawWithExcessScroll_Default(ListView.java:3
288)
16783 AndroidRuntime E at android.widget.ListView.dispatchDraw(ListView.java:3029)
16783 AndroidRuntime E at android.view.View.draw(View.java:6743)
16783 AndroidRuntime E at android.widget.AbsListView.draw(AbsListView.java:2549)
16783 AndroidRuntime E at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
16783 AndroidRuntime E at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
16783 AndroidRuntime E at android.view.View.draw(View.java:6743)
16783 AndroidRuntime E at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
16783 AndroidRuntime E at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
16783 AndroidRuntime E at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
16783 AndroidRuntime E at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
16783 AndroidRuntime E at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
16783 AndroidRuntime E at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
16783 AndroidRuntime E at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
16783 AndroidRuntime E at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
16783 AndroidRuntime E at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
16783 AndroidRuntime E at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
16783 AndroidRuntime E at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
16783 AndroidRuntime E at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
16783 AndroidRuntime E at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
16783 AndroidRuntime E at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
16783 AndroidRuntime E at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
16783 AndroidRuntime E at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
16783 AndroidRuntime E at android.view.View.draw(View.java:6743)
16783 AndroidRuntime E at android.view.ViewGroup.drawChild(ViewGroup.java:1640)
16783 AndroidRuntime E at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
16783 AndroidRuntime E at android.view.ViewGroup.drawChild(ViewGroup.java:1638)
16783 AndroidRuntime E at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367)
16783 AndroidRuntime E at android.view.View.draw(View.java:6743)
16783 AndroidRuntime E at android.widget.FrameLayout.draw(FrameLayout.java:352)
16783 AndroidRuntime E at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java
:1885)
16783 AndroidRuntime E at android.view.ViewRoot.draw(ViewRoot.java:1407)
16783 AndroidRuntime E at android.view.ViewRoot.performTraversals(ViewRoot.java:1163)
16783 AndroidRuntime E at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
16783 AndroidRuntime E at android.os.Handler.dispatchMessage(Handler.java:99)
16783 AndroidRuntime E at android.os.Looper.loop(Looper.java:123)
16783 AndroidRuntime E at android.app.ActivityThread.main(ActivityThread.java:4627)
16783 AndroidRuntime E at java.lang.reflect.Method.invokeNative(Native Method)
16783 AndroidRuntime E at java.lang.reflect.Method.invoke(Method.java:521)
16783 AndroidRuntime E at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:8
58)
16783 AndroidRuntime E at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
16783 AndroidRuntime E at dalvik.system.NativeStart.main(Native Method)
Как вы можете видеть в трассировке стека, там нет ни одной строки с моей трассировкой кода.
Чтобы воспроизвести это, мне повезло найти пользователя с Froyo (2.2 p7), и я просто прокрутил вниз один из ListView
ов на коде. Через некоторое случайное время он просто застыл с этим исключением. Это происходит каждый раз в разное время.
Это ListView
с EndlessAdapter
за ним, просто добавляя все больше и больше строк.
Очевидно, я получаю эту ошибку, когда делаю "over-scroll", но я даже не могу придумать, как это исправить.
Это достаточно трудно воспроизвести, но с почти 200 пользователями онлайн в любое время, если они продолжают получать эту ошибку, они закончат тем, что больше не будут использовать приложение.
Любая помощь будет принята с благодарностью.
РЕДАКТИРОВАТЬ:
Была похожая проблема у кого-то еще с EndlessAdapter
. http://groups.google.com/group/cw-android/browse_thread/thread/4739ce05742841da/af59c779e99f5e23?lnk=gst&q=index#af59c779e99f5e23
But it's not EndlessAdapter
's fault. Это вина андроида.