android - 创建查询时出现 SQLiteDatabaseCorruptException 错误

标签 android database sqlite

我有一个预填充的数据库。当应用程序第一次启动时,它会将文件从 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/

相关文章:

java - Ant 使用 -source 7 或更高版本来启用钻石运算符

Android 谷歌分析跟踪

java - 在可扩展 ListView 中使用 SimpleCursorTreeAdapter 时获取光标值

ruby-on-rails - 您的 Gemfile 不止一次列出了 gem。可能会导致错误

sqlite - 返回按列分组并由其他列值命名的多行

android - Eclipse 无法识别我的 Android 平板电脑

android - 带触发器的平台

java - 是否可以备份和恢复 HSQLDB 数据库?

oracle - PowerBuilder 不支持 Oracle 远程过程中的参数类型

mysql - 选择不同的列,然后计算与 MySQL 中该列相关的 2 列