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.

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


person Jainendra    schedule 28.05.2015    source источник
comment
Я считаю, что ограничение составляет 2 МБ. Проверьте этот пост SO   -  person gtgaxiola    schedule 28.05.2015


Ответы (2)


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

person anirban karak    schedule 05.08.2015

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

person RobertUzar    schedule 05.08.2015