Android android.database.CursorIndexOutOfBoundsException:请求索引2,大小为2

时间:2011-07-27 19:43:47

标签: android exception linker-errors

我有这个日志

07-27 21:42:05.635:ERROR / AndroidRuntime(26094):致命异常:主要 07-27 21:42:05.635:ERROR / AndroidRuntime(26094):android.database.CursorIndexOutOfBoundsException:请求索引2,大小为2 07-27 21:42:05.635:ERROR / AndroidRuntime(26094):在android.database.AbstractCursor.checkPosition(AbstractCursor.java:580) 07-27 21:42:05.635:ERROR / AndroidRuntime(26094):在android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:214) 07-27 21:42:05.635:ERROR / AndroidRuntime(26094):在android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:41) 07-27 21:42:05.635:ERROR / AndroidRuntime(26094):at it.android.infoconsumatori.ServiceS $ 1.handleMessage(ServiceS.java:101) 07-27 21:42:05.635:ERROR / AndroidRuntime(26094):在android.os.Handler.dispatchMessage(Handler.java:99) 07-27 21:42:05.635:ERROR / AndroidRuntime(26094):在android.os.Looper.loop(Looper.java:123) 07-27 21:42:05.635:ERROR / AndroidRuntime(26094):在android.app.ActivityThread.main(ActivityThread.java:3691) 07-27 21:42:05.635:ERROR / AndroidRuntime(26094):at java.lang.reflect.Method.invokeNative(Native Method) 07-27 21:42:05.635:ERROR / AndroidRuntime(26094):at java.lang.reflect.Method.invoke(Method.java:507) 07-27 21:42:05.635:ERROR / AndroidRuntime(26094):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:847) 07-27 21:42:05.635:ERROR / AndroidRuntime(26094):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 07-27 21:42:05.635:ERROR / AndroidRuntime(26094):at dalvik.system.NativeStart.main(Native Method) 07-27 21:42:05.640:ERROR /(2695):Dumpstate> /数据/日志/ dumpstate_app_error

问题是什么?

1 个答案:

答案 0 :(得分:2)

这意味着您正在访问不存在的项目。可以这样想:游标有一定数量的行(你要访问的数据),这些行是零索引的,这意味着如果有10行数据,第一行数据是索引0 ,第10行(最后一个可用值)为索引9 而非索引10 - 索引10不存在。

你的问题正是由于这个,你有一个两行的光标(索引0到1),并且你试图访问索引2(第三个项目根本就不存在),因此你得到一个例外抛出。

希望有所帮助。