簡體   English   中英

安卓房間數據庫被鎖定

[英]android room database locked

當我使用第 3 方非線程安全的 sqlite 庫時,我從生產中得到了“android.database.sqlite.SQLiteDatabaseLockedException”異常。 我檢查了所有線程和連接關閉,我將所有實例設為單例,但我無法解決問題(我什至沒有自己重現案例)。 然后我將我的 orm 移動到完全線程安全的 Room 數據庫。 但我仍然從生產中得到完全相同的錯誤。 那么,Room db 線程不是安全的嗎?它不是像 Google 提到的那樣解決了傳統 sqlite 庫的問題嗎? 是否有人在使用 Room 時遇到數據庫鎖定錯誤?

請檢查https://stackoverflow.com/a/63849367/3256989 簡而言之,嘗試在構建 RoomDatabase 期間使用enableMultiInstanceInvalidation()

嘗試將 Journal Mode 設置為JournalMode.AUTOMATIC 對我來說很好。

我項目中的示例代碼

INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
                        MyDatabase.class, "myDatabase")
                        .addMigrations(MIGRATION_1_2)
                        .addCallback(sRoomDatabaseCallback)
                        .setJournalMode(JournalMode.AUTOMATIC)
                        .build();

Android Room 數據庫日志模式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM