每次启动应用程序时都会出错。
E/SQLiteLog: (283) recovered 22 frames from WAL file /data/data/com.dmitrysimakov.kilogram/databases/androidx.work.workdb-wal
应用程序运行正常,但我想知道为什么会出现此错误。 databases / androidx.work.workdb-wal它是一个工人的期刊。我使用Worker来预填充我的数据库。
Room.databaseBuilder(app, KilogramDb::class.java, "kilogram.db")
.addCallback(object : RoomDatabase.Callback() {
override fun onCreate(db: SupportSQLiteDatabase) {
super.onCreate(db)
val request = OneTimeWorkRequestBuilder<SeedDatabaseWorker>().build()
WorkManager.getInstance().enqueue(request)
}
})
.fallbackToDestructiveMigration()
.build()
此消息表明数据库在退出之前尚未关闭,因此未正确清理WAL文件。
因此,当应用程序启动时,它意识到它需要对WAL文件进行清理,然后执行此操作,但会发出错误,因为它可能表明存在严重问题。
要解决此问题,您需要在完成数据库后关闭它。
您可能会感兴趣(Richard Hipp是负责SQLite的主要人员,如果您还不知道的话)Continuous recovery of journal