我有一个预填充的数据库。首次启动应用程序时,它将文件从资产发送到数据库。系统可以在某些Android设备上完美运行。但是,在某些设备中,应用会附带数据库文件,然后在尝试获取查询时会失败并关闭该应用。

我的应用程序的平台版本为1.5,因此问题不在于平台。

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个字符。会导致该错误吗?我该怎么办?救命!

最佳答案

我刚刚解决了与您类似的问题。问题出在sqlite数据库中,我认为这可能是在3.6版之前的sqlite3旧版本中的错误。现在,我使用sqlite3 v3.7.11 [http://www.sqlite.org/download.html]重新创建了数据库,它的工作原理很像-别忘了创建android_metadata表[http://www.reigndesign。 com / blog /在android-applications /中使用自己的sqlite-database /]

我希望这也可以解决您的问题。

08-17 16:30
查看更多