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

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

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

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

这些是Lollipop设备,我知道PERSIST自API 16以来一直被使用,但看起来好像不太对劲。

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

android sqlite
2个回答
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;
}

0
投票

我有同样的问题,当我停止数据库处理多个事务时,我解决了它。删除database.enableWriteAheadLogging()或使用database.disableWriteAheadLogging()

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