我有这个日志
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
问题是什么?
答案 0 :(得分:2)
这意味着您正在访问不存在的项目。可以这样想:游标有一定数量的行(你要访问的数据),这些行是零索引的,这意味着如果有10行数据,第一行数据是索引0 ,第10行(最后一个可用值)为索引9 而非索引10 - 索引10不存在。
你的问题正是由于这个,你有一个两行的光标(索引0到1),并且你试图访问索引2(第三个项目根本就不存在),因此你得到一个例外抛出。
希望有所帮助。