E / SQLiteLog:(283)从WAL文件恢复帧

问题描述 投票:2回答:1

每次启动应用程序时都会出错。

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()
android android-sqlite android-architecture-components android-workmanager
1个回答
2
投票

此消息表明数据库在退出之前尚未关闭,因此未正确清理WAL文件。

因此,当应用程序启动时,它意识到它需要对WAL文件进行清理,然后执行此操作,但会发出错误,因为它可能表明存在严重问题。

要解决此问题,您需要在完成数据库后关闭它。

您可能会感兴趣(Richard Hipp是负责SQLite的主要人员,如果您还不知道的话)Continuous recovery of journal

© www.soinside.com 2019 - 2024. All rights reserved.