IlegalStateException, где выбрасывается при попытке получить значения из экземпляра RoomDatabase

Я использую андроидную новую компоненту архитектуры для операций с базой данных, у меня возникают проблемы, когда я пытаюсь восстановить объекты из базы данных

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

это мой интерфейс Dao

 @Dao interface BookDao { @Query("SELECT * FROM books") fun getAllBooks() : List<Book> @Insert fun saveBook(book: Book) @Query("DELETE FROM books") fun deleteBookTable() } 

это мой класс модели таблицы

 @Entity(tableName = "books") data class Book( @ColumnInfo(name = "book_title") var title: String, var imgRes: Int, var filePath: String? = null, var pdfInBytes: ByteArray? = null, @PrimaryKey @ColumnInfo(name = "_id") var bookId: String = UUID.randomUUID().toString() ) : Serializable 

и это дочерний класс RoomDatabase

 @Database(entities = arrayOf(Book::class), version = 1) abstract class AppDatabase : RoomDatabase() { abstract fun bookDao(): BookDao companion object { @Volatile private var INSTANCE: AppDatabase? = null fun getInstance(context: Context): AppDatabase = INSTANCE ?: synchronized(this) { INSTANCE ?: buildDatabase(context).also { INSTANCE = it } } private fun buildDatabase(context: Context) = Room.databaseBuilder(context.applicationContext, AppDatabase::class.java, "booksDB.db") .build() } } 

это код, где я вызываю этот метод

 private val db: AppDatabase by lazy { AppDatabase.getInstance(this) } override fun onCreate(savedInstanceState: Bundle?) { doAsync { // from anko library for (i in 0..10){ val book = Book("$i", tmpImgRes, "tmpPath", tmpBytes) db.bookDao().saveBook(book) } val books = db.bookDao().getAllBooks() } } 

когда я пытаюсь вызвать getAllBooks () исключение, где вызывается.

комната:

 implementation "android.arch.persistence.room:runtime:1.0.0-rc1" annotationProcessor "android.arch.persistence.room:compiler:1.0.0-rc1" 

Я решил свою проблему, фактическую проблему, когда в размерах строк таблицы SQLite, когда я пытался извлечь данные из таблицы, строка, в которой содержится более 2,5 МБ данных, и она не подходит в базе данных SQLite, чем я уменьшаю размеры данных, разбивая массив байтов и сохраняя их кусками, после чего каждая вещь работала отлично, после извлечения я объединил ее как бы оригинальную

Intereting Posts
Могу ли я использовать Coroutines Котлина, используя их в Java-коде? Невозможно инициализировать парсер объектов для модели. Продукты, не найдены приемлемые конструкторы класс-конструктор и переменные-члены (поля) Как поместить элемент на карту и вернуть карту Котлинский шаблон для использования Spring Data JPA «запрос по примеру» Как добавить новую конфигурацию с помощью Gradle Script Kotlin? Параметр функции Kotlin: Val не может быть переназначен Как добавить поддержку Kotlin для обычного Java Lib в Android? Android Kotlin Realm Правильный способ запроса + обновление Async Kotlin: как передать массив в аннотацию Java Kotlin: как вернуть некоторую ценность из области? Разрешение ошибок случайного перекрытия в Котлине Как исправить воссоздание программно Макет Как использовать @Parcelize в Kotlin 1.1.60? Используя Kovenant от Kotlin, я продолжаю использовать повторяющийся код, используя Deferred