В Crashlytics я вижу много исключений Room с этим сообщением: «Убедитесь, что курсор инициализирован правильно, прежде чем получить доступ к данным из него». Я не могу выдать эту ошибку на моих устройствах, и ошибка не возникает в определенной версии Android или модели устройства.
Я не могу найти ничего об этой ошибке в Room. Есть вопросы к SQLLite, и большинство из них касаются проблемных SQL-запросов, которые пишутся от руки.
Даже этот простой запрос имеет ошибки на пользовательских устройствах.
@Query("SELECT * FROM UserAction WHERE UserAction.userId LIKE :userId " +
" ORDER BY last_update_time DESC")
public List<UserAction> allList(String usedId);
Исключением является:
Неустранимое исключение: java.lang.IllegalStateException: Не удалось прочитать строку 1756, столбец 0 из CursorWindow. Убедитесь, что курсор инициализирован правильно, прежде чем получить доступ к данным из него. в android.database.CursorWindow.nativeGetString (CursorWindow.java) в android.database.CursorWindow.getString (CursorWindow.java:438) в android.database.AbstractWindowedCursor.getString (AbstractWindowedCursor.java:66)
1012 *1011* 10121013 * Ошибка возникает в сгенерированном коде внутри цикла while
while(_cursor.moveToNext()) {
final UserAction _item;
_item = new UserAction();
_item.userId = _cursor.getString(_cursorIndexOfUserId); //Exception here