2012-03-12 117 views
1

我有一個預填充數據庫。當應用程序第一次啓動時,它將文件從資產發送到數據庫。系統完美適用於某些Android設備。但是,在某些設備中,應用程序會發送db文件,然後當它嘗試獲取查詢時,它會失敗並關閉應用程序。SQLiteDatabaseCorruptException創建查詢時出錯

我的應用程序的平臺的版本是1.5,所以這個問題是不是平臺VERS。

03-11 01:11:34.111 I/Database(4516): sqlite returned: error code = 
11, msg = database corruption at line 46886 of [42537b6056] 

03-11 01:11:34.111 I/Database(4516): sqlite returned: error code = 
11, msg = database disk image is malformed 

03-11 01:11:34.111 D/AndroidRuntime(4516): Shutting down VM 

03-11 01:11:34.111 W/dalvikvm(4516): threadid=1: thread exiting with 
uncaught exception (group=0x40018560) 

03-11 01:11:34.111 
E/AndroidRuntime(4516): FATAL EXCEPTION: main 

03-11 01:11:34.111 E/AndroidRuntime(4516): 
android.database.sqlite.SQLiteDatabaseCorruptException: database disk 
image is malformed: , while compiling: SELECT Names FROM MyTable WHERE 
PageaNo = 1 

SQL查詢代碼沒有問題。那麼問題是什麼?

有我的數據庫中UTF-8字符。它可以導致這個錯誤?我該怎麼辦?幫幫我!

回答

1

我只是解決了類似的問題,以你的。問題出在sqlite數據庫中,我認爲這是sqlite3舊版本中的一個bug,或許是在3.6之前。現在,我用sqlite3 v3.7.11 [http://www.sqlite.org/download.html]重新創建了數據庫,它的功能就像一個魅力 - 而且,別忘了創建android_metadata表[http://www.reigndesign。 COM /博客/使用 - 你自己的sqlite的數據庫功能於Android的應用程序/]

我希望這也將整理您的問題。