30mb Sqlite3数据库 - 包括在Android应用程序

问题描述:

我有一个SQLite3数据库(在桌面sqlite应用程序中创建),android_metadata表用于我的android应用程序。30mb Sqlite3数据库 - 包括在Android应用程序

什么是使用这个数据库文件创建android数据库的最佳方式是什么?

我已经试过将它包含在资产文件夹中,但在将其复制到应用程序时遇到大小错误,并且不确定是否这是由于资产文件具有最大大小。

我也读过关于将数据库存储在SD卡上并访问它的指南。

androids sqlite helper上的哪个函数最好从sqlite3导出中打开一个新的数据库?

我把数据库文件的数据/数据/ COM ../数据库/和它创造了一个“android.database.sqlite.SQLiteDatabaseCorruptException:磁盘畸形..

不知道如何做到这一点,明白任何帮助!

+0

你正在建造哪个android版本? 2.2? – waqaslam 2012-03-01 22:39:29

+0

2.3,但它向后兼容1.6 – user1184075 2012-03-01 22:42:26

+0

和你的手机/模拟器是什么版本? – waqaslam 2012-03-01 22:45:26

您可以尝试使用SQLiteAssetHelper这一点,因为它的目的是使开发人员更容易与他们的应用程序包的数据库。

话虽这么说,你的数据库是太大了。有大量的1.6设备不会为你的APK和解压后的数据库留出空间。

您收到大小错误的原因是因为android喜欢压缩Assets文件夹中的文件,但如果大小超过1 meg,则无法解压。某些文件扩展名不会像jpeg,gif,mp3,jet那样被压缩。我总是将我的数据库命名为name.db.jet,然后在将它复制到数据库目录时将其重命名为name.db。文件上的扩展名的意思真的没什么意思,只不过用像.jet这样的扩展名来命名它。顺便说一句,如果你要包含一个30MB大小的数据库,一定要包含它压缩。这将减少到约10mb的大小。