【问题标题】:java.lang.IllegalStateException: Couldn't read row 4, col 0 from CursorWindowjava.lang.IllegalStateException:无法从 CursorWindow 读取第 4 行第 0 列
【发布时间】:2015-08-11 01:19:33
【问题描述】:

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

 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 个字符。我怀疑该错误是大字符串值的结果。

知道如何解决这个错误吗?

【问题讨论】:

标签: java android android-cursor


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2017-05-22
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-29
      • 2019-12-04
      • 1970-01-01
      相关资源
      最近更新 更多