0

游标已通过 cursor.moveToFirst 并已处理数百行。在一些相当大的数据集(超过 500 行)上,它会给出如下所示的 ISE,并且总是在 400 行左右。Crashlytics 报告说,这些用户有 80% 以上的可用 RAM。

Caused by java.lang.IllegalStateException
Couldn't read row 420, col 0 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
0 ...   
CursorWindow.java line
android.database.CursorWindow.nativeGetLong
4   
AbstractCursor.java line 244
android.database.AbstractCursor.moveToNext

有谁知道发生这种情况的原因和可能使用的恢复方法?

4

1 回答 1

0

事实证明,当其中一行太大(我在这里谈论的是 40 列连接)并且无法放入单个 CursorWindow(2M,但您可以通过 sCursorWindowSize 上的反射修改大小并作弊时,就会发生这种情况, :) )

于 2014-06-10T16:56:22.907 回答