SQLiteDatabaseCorruptException创建查询时出错

时间:2012-03-12 10:37:15

标签: android database sqlite

我有一个预先填充的数据库。当应用程序第一次启动时,它会将文件从Assets传送到数据库。系统完美适用于某些Android设备。但是,在某些设备中,app会提供db文件,然后在尝试获取查询时,它会失败并关闭应用程序。

我的应用平台版本为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字符。它会导致错误吗?我该怎么办?帮助!

1 个答案:

答案 0 :(得分:1)

我刚刚解决了与你类似的问题。问题出现在sqlite数据库中,我认为这是sqlite3旧版本中的一个错误,也许是在3.6之前。现在,我用sqlite3 v3.7.11 [http://www.sqlite.org/download.html]重新创建了数据库,它就像一个魅力 - 而且,别忘了创建android_metadata表[http://www.reigndesign。 COM /博客/使用 - 你自己的sqlite的数据库功能于Android的应用程序/]

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