我有一个预填充的数据库。当应用程序第一次启动时,它会将文件从 Assets 传送到数据库。系统在某些 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 数据库中,我认为这是 sqlite3 旧版本中的一个错误,也许是在 3.6 之前。现在,我用 sqlite3 v3.7.11 [http://www.sqlite.org/download.html] 重新创建了数据库,它的工作就像一个魅力 - 而且,不要忘记创建 android_metadata 表 [http://www.reigndesign。 com/blog/using-your-own-sqlite-database-in-android-applications/]
我希望这也能解决您的问题。
关于android - 创建查询时出现 SQLiteDatabaseCorruptException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9665503/