2015-03-11 1 views
1

В 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 ошибки не распространяются на точно такую ​​же базу данных.

+0

Вы всегда получаете ту же ошибку коррупции? –

+0

Да всегда такая же ошибка ... 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 в базе данных: –

ответ

1

У меня была такая же проблема с базой данных с индексом в ней.

Удалено, и проблема решена. (Я запускаю эмулятор Lollipop).

+0

спасибо. он работал над android 6 marshmallow, но терпел неудачу в android 5 lollypop «повреждение базы данных». Но, понизив индексы, он работал над обоими. – Thupten

+0

Как удалить индексы? о каких указателях вы говорите? – UnKnown

 Смежные вопросы

  • Нет связанных вопросов^_^