IlegalStateException donde se lanzó, al intentar recuperar los valores de la instancia de RoomDatabase

Estoy usando el nuevo espacio de componentes de architecture android para las operaciones de la database, me metí en problemas cuando trato de recuperar objects de la database

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

esta es mi interfaz Dao

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

esa es mi class de model de tabla

 @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 

y esta es la class infantil 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() } } 

este es código bloke donde estoy invocando este método

 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() } } 

cuando bash llamar a la exception getAllBooks () donde se lanza.

implementación de la sala:

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

Resolví mi problema, el problema real, donde en los tamaños de fila de la tabla SQLite, cuando estaba tratando de recuperar los datos de la tabla, la fila que contenía más de 2.5 MB de datos y no está bien en la database SQLite, networkinguje la tamaños de datos dividiendo la matriz de bytes y guardándolos por fragments, después de eso todo funcionó a la perfección, después de search lo fusioné como si fuera original

  • ¿Cómo puedo unirme a tres entidades en GreenDao?
  • Error de la database de la sala Android: parámetro no utilizado: días en la function @Query
  • Causado por: android.database.sqlite.SQLiteException: cerca de "org": error de syntax (código 1):, al comstackr:
  • Base de datos de android de Kotlin: no se puede convertir java.lang.String en android.database.Cursor
  • Cómo anotar una columna como NOT NULL utilizando Android Room Persistence Library