SQLite数据库不适用于Android,而在Windows上它工作得很好

时间:2013-01-16 06:55:06

标签: android sqlite

我想将数据库添加到我的android项目中,其他手机上的数据库似乎工作正常。当我尝试使用我的实用程序时,我尝试查看我的数据库,报告数据库图像格式错误,并且无法执行查询以列出表和视图。

我尝试手动复制数据库,看看当我将资产从资产复制到数据文件夹时是否出现错误,但结果是一样的。我还将db复制回windows,一切正常。

所以我的问题是:这种不相容的原因是什么以及我如何解决它?

1 个答案:

答案 0 :(得分:0)

我一直在使用的数据库文件是在数据库开发过程中使用的,并且有很多变化的历史。我认为,无论是我的文件版本还是其他完整的东西都是我遇到问题的原因。

我修复它的方法是创建具有完全相同模式的空数据库,并将有问题的数据库文件的所有内容复制到那里。我使用SQLite命令行shell实现了它。

ATTACH DATABASE "D:\dbtest\new.db" AS newdb;
ATTACH DATABASE "D:\dbtest\old.db" AS olddb;
INSERT INTO newdb.android_metadata SELECT * FROM olddb.android_metadata;
INSERT INTO newdb.table1 SELECT * FROM olddb.table1;
... (repeat for each table)