每次我在应用程序中在真实设备或avd上打开数据库时,我都会看到以下LogCat条目:
E/SQLiteLog﹕ (5) statement aborts at 2: [PRAGMA journal_mode=PERSIST]
这些是Lollipop设备,我知道PERSIST自API 16开始使用,但看起来好像不太正确。
数据库在打开后完美运行(据我所知)。
答案 0 :(得分:1)
当我尝试在db.enableWriteAheadLogging()
中使用预写日志记录onConfigure(SQLiteDatabase db)
时出现此错误:
@Override
public void onConfigure(SQLiteDatabase db) {
db.enableWriteAheadLogging();
super.onConfigure(db);
}
因此,由于预写日志记录不能用于只读数据库,因此必须使用setWriteAheadLoggingEnabled(true)
:
@Override
public void onConfigure(SQLiteDatabase db) {
setWriteAheadLoggingEnabled(true);
super.onConfigure(db);
}
或仅在db.enableWriteAheadLogging()
中使用getWritableDatabase()
:
@Override
public SQLiteDatabase getWritableDatabase() {
SQLiteDatabase db = super.getWritableDatabase();
db.enableWriteAheadLogging();
return db;
}
答案 1 :(得分:0)
我有同样的问题,当我停止数据库处理多个事务时,我解决了它。删除database.enableWriteAheadLogging()
或使用database.disableWriteAheadLogging()