2014-01-07 170 views
-1

當我使用cursor.getCount()或cursor.moveToFirst(),並沒有記錄被獲取從DBSQLite數據庫被損壞

android.database.sqlite.SQLiteDatabaseCorruptException: database disk image is malformed 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621) 
at android.app.ActivityThread.access$2200(ActivityThread.java:126) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:123) 
at android.app.ActivityThread.main(ActivityThread.java:4595) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:521) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
at dalvik.system.NativeStart.main(Native Method) Caused by: android.database.sqlite.SQLiteDatabaseCorruptException: database disk image is malformed 
at android.database.sqlite.SQLiteQuery.native_fill_window(Native Method) 
at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:75) 
at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:295) 
at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:276) 
at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:171) 
at android.database.AbstractCursor.moveToFirst(AbstractCursor.java:248) 

有人建議使用SQLiteDatabase的多個實例可能會導致我的問題,如果我有兩個實例同時更新相同的數據庫文件。因此,我已經檢查了每個db連接的實例,但沒有任何幫助。 :(

我只是想刪除數據庫之前處理異常。

所以,球員請提出一些東西,解決了我的問題。

回答

0

如果數據庫被破壞,你只需用備份替換數據庫。您可以使用簡單的文件複製粘貼方法來保持每天的備份

+1

感謝yushi,但這種方式將處理應用程序的進一步工作意味着下次打開應用程序:) – Gattsu