在我的应用中,我使用ORMLite在我的SQLite数据库中插入数据。在某些设备上,插入数据时出现以下错误:
02-05 09:29:56.864 22365-22441/com.app E/SQLiteLog﹕ (5) statement aborts at 2: [PRAGMA journal_mode=PERSIST]
02-05 09:29:56.864 22365-22441/com.app W/SQLiteConnection﹕ Could not change the database journal mode of '/data/data/com.app/databases/app.db' from 'wal' to 'PERSIST' because the database is locked. This usually means that there are other open connections to the database which prevents the database from enabling or disabling write-ahead logging mode. Proceeding without changing the journal mode.
我不知道如何为ORMLite解决这个问题。有没有人解决我的问题?只访问一个SQLOpenHelper不能解决我的问题,因为我使用ORMLite并且不直接从我的代码中使用SQLOpenHelper。
答案 0 :(得分:0)
您是否在此声明之前使用查询似乎该威胁的执行仍在执行?
也许你需要在开始其他查询之前等待结果? 不确定是否就是想与你一起思考。
答案 1 :(得分:0)
正如错误所说,在进行中。也许某种设备的某种操作比另一种更慢。请仔细检查您的代码
答案 2 :(得分:0)
我想我得到了一个解决方案。我从每个DatabaseManagers执行了以下代码:
SQLiteDatabase db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("PRAGMA journal_mode = WAL;", null);
cursor.close();
我得到的声明中止错误很少,但我仍然得到一些错误。我应该在每次查询后运行该代码,还是这不是一个好的解决方案?