2015-05-28 2 views
0

При попытке прочитать данные из базы данных, я получаю эту ошибку:java.lang.IllegalStateException: Не удалось прочитать строку 4, столбец 0 из CursorWindow

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 символов. Я подозреваю, что ошибка является результатом большого значения String.

Любая идея, как исправить эту ошибку?

+0

Я считаю, что предел составляет 2 МБ. [Проверить это сообщение SO] (http://stackoverflow.com/questions/21432556/android-java-lang-illegalstateexception-couldnt-read-row-0-col-0-from-cursorw) – gtgaxiola

ответ

0

В соответствии с текущей реализацией config_cursorWindowSize размер поддержки не более 2 МБ. Если размер строки превышает то, он будет вызывать ошибку.

0

Я только что столкнулся с той же проблемой, но с выбором значения int. Check this issue и проверьте, не возникла ли ваша проблема в тех же условиях.

Смежные вопросы