打开数据库时的日志模式logcat条目

时间:2015-06-21 10:24:32

标签: android sqlite

每次我在应用程序中在真实设备或avd上打开数据库时,我都会看到以下LogCat条目:

E/SQLiteLog﹕ (5) statement aborts at 2: [PRAGMA journal_mode=PERSIST]

这些是Lollipop设备,我知道PERSIST自API 16开始使用,但看起来好像不太正确。

数据库在打开后完美运行(据我所知)。

2 个答案:

答案 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()