当我的应用程序运行时,我得到了android运行时错误java.lang.IndexOutOfBoundsException
。如何处理?
以下是我的堆栈跟踪:
07-05 17:34:31.906: ERROR/AndroidRuntime(657): Uncaught handler: thread main exiting due to uncaught exception
07-05 17:34:31.937: ERROR/AndroidRuntime(657): java.lang.IndexOutOfBoundsException
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at java.util.LinkedList.get(LinkedList.java:453)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at com.ibkr.roadbrake.RB_UpcomingExits$UpcomingResultsListViewAdapter2.getView(RB_UpcomingExits.java:2232)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at com.ibkr.roadbrake.RB_UpcomingExits$8.onClick(RB_UpcomingExits.java:3921)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at android.view.View.performClick(View.java:2364)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at android.view.View.onTouchEvent(View.java:4179)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at android.view.View.dispatchTouchEvent(View.java:3709)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:852)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at android.os.Handler.dispatchMessage(Handler.java:99)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at android.os.Looper.loop(Looper.java:123)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at android.app.ActivityThread.main(ActivityThread.java:4363)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at java.lang.reflect.Method.invokeNative(Native Method)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at java.lang.reflect.Method.invoke(Method.java:521)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
07-05 17:34:31.937: ERROR/AndroidRuntime(657): at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:0)
这意味着您正在尝试访问数组中超出限制的项目。也就是说你试图访问5元素列表中的第6个元素。
希望这是有道理的,除非你发布一些我无法帮助你的代码......
答案 1 :(得分:0)
IndexOutOfBoundsException意味着您正在尝试访问不存在的数组(或List)中的元素。这是一个例子:
int[] array = {0,1,2};
Log.v("Name", array[5]);
此示例代码尝试访问数组的第六个元素,但只存在三个元素。
在StackTrace中搜索您的类和函数,这会导致错误,然后检查您获取异常的原因。
答案 2 :(得分:0)
所以......在适配器的getCount方法中......执行此操作
public int getCount(){
int size = 1;
if(arralyst !=null){
size = arraylist.size();
}
return size;
}
答案 3 :(得分:0)
如果列表中有页眉或页脚视图,请不要忘记在UpcomingResultsListViewAdapter2
中获取项目时调整点击位置。
答案 4 :(得分:0)
除了显而易见的 - 显式访问不存在的索引 - 当您在List上迭代并在循环中删除元素时,通常会发生此错误:
for (Foo foo : list) {
if (isBar(foo)) {
list.remove(foo);
}
}
迭代器不知道更改,它可以抛出异常。