【发布时间】:2014-12-09 07:15:33
【问题描述】:
我正在使用 SQLite 开发 Android 应用程序,并希望更改为使用 SQLcipher 的加密数据库。 我将 icudt46l.zip 添加到 assets 文件夹,并将 *.so 添加到 libs/armeabi 文件夹。 由于是升级,我想加密未加密的数据库。
我在 Samsung S2 (Android 2.3.3) 和 Sony Z1 (Android 4.4.2) 上测试了代码,它可以正常工作,从未加密的数据库更新以及新的加密数据库。
使用我的三星 Galaxy S4 (Android 4.2.2) 时,当我尝试打开未加密的数据库 SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(originalFile, "", null) 时,我不断收到致命信号 11。
这是我的代码中第一次调用 SQLcipher 方法(net.sqlcipher.database.SQLiteDatabase.loadLibs(inContext) 除外)。
如果我从清单中更改包名称,它将在 S4 上运行(因此它会获得一个全新的干净数据库)。
当我想到 OOM 异常时,我再次在 S2 上测试了代码。我生成了一个 10MB 的 SQLite 未加密数据库,并用我的代码正确地转换了它。
谁能给我一个提示,我做错了什么?
【问题讨论】:
标签: android database sqlite sqlcipher