В KitKat я могу запустить этот код без каких-либо проблем:Обновление sqlite не работает в android lollipop, но работает на kitkat?
mDb = getDatabaseHelper().getWritableDatabase();
mDb.beginTransactionWithListener(this);
try {
count = updateInTransaction(uri, values, selection, selectionArgs);
if (count > 0) {
mNotifyChange = true;
}
mDb.setTransactionSuccessful();
} finally {
mDb.endTransaction();
}
но на леденец я получаю эту странную ошибку:
03-11 16:05:33.275 1947-2326/nl.afas.pocket E/SQLiteLog﹕ (11) database corruption at line 57126 of [9491ba7d73]
03-11 16:05:33.275 1947-2326/nl.afas.pocket E/SQLiteLog﹕ (11) statement aborts at 54: [UPDATE Contact SET favorite=?,_id=? WHERE _id = ?]
03-11 16:05:33.275 1947-2326/nl.afas.pocket E/DefaultDatabaseErrorHandler﹕ Corruption reported by sqlite on database: /data/data/nl.afas.pocket/databases/pocket.db
03-11 16:05:33.275 1947-2326/nl.afas.pocket E/DefaultDatabaseErrorHandler﹕ deleting the database file: /data/data/nl.afas.pocket/databases/pocket.db
03-11 16:05:33.278 1947-2326/nl.afas.pocket E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-141
Process: nl.afas.pocket, PID: 1947
java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase: /data/data/nl.afas.pocket/databases/pocket.db
at android.database.sqlite.SQLiteClosable.acquireReference(SQLiteClosable.java:55)
at android.database.sqlite.SQLiteDatabase.endTransaction(SQLiteDatabase.java:520)
at nl.afas.pocket.content.SQLiteContentProvider.update(SQLiteContentProvider.java:144)
первую ошибку (повреждение базы данных) occurres на updateInTransaction
Второе ошибочное исключение из состояния eror возникает в mDb.endTransaction(); mDb уже закрыт.
В KitKat ошибки не распространяются на точно такую же базу данных.
Вы всегда получаете ту же ошибку коррупции? –
Да всегда такая же ошибка ... 03-16 11: 12: 24.526 2324-2409 /? E/SQLiteLog: (11) повреждение базы данных по строке 57126 of [9491ba7d73] 03-16 11: 12: 24.526 2324-2409 /? E/SQLiteLog: (11) оператор прерывается на 54: [UPDATE Contact SET favorite =?, _ Id =? WHERE _id =?] 03-16 11: 12: 24.526 2324-2409 /? E/DefaultDatabaseErrorHandler: Коррупция, о которой сообщает sqlite в базе данных: –