java.lang.IllegalStateException:无法从CursorWindow读取第4行col 0

时间:2015-05-28 13:35:31

标签: java android android-cursor

在尝试从数据库中读取数据时,我收到此错误:

 java.lang.IllegalStateException: Couldn't read row 4, col 0 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.

游标中的行数为24,代码在第22行给出异常。我使用的代码如下:

while (c.moveToNext()) {
            SomeData someData = new SomeData();
            someData.setQuestion(c.getString(0)); //Exception is coming in this line
            someData.setOption1(c.getString(1));
            someData.setOption2(c.getString(2));
            someData.setOption3(c.getString(3));
            someData.setOption4(c.getString(4));
            someData.setAnswer(c.getString(5));
            outMap.put(c.getString(6), someData );
 }

第22行记录的列值(字符串)长度为699059个字符。我怀疑错误是大字符串值的结果。

知道如何修复此错误吗?

2 个答案:

答案 0 :(得分:0)

我刚遇到同样的问题,但是获取了int值。 Check this issue并查看您的问题是否在相同条件下发生。

答案 1 :(得分:0)

根据当前的实现 config_cursorWindowSize 支持最大2 MB大小。如果行大小超过则会抛出错误。