android - SQLCipher 致命信号 11 (SIGSEGV) 位于 0x756c66f2(代码=1)

标签 android database sqlite sqlcipher

我正在使用 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 上运行的 list 中的包名称(因此它会获得一个全新的干净数据库)。 当我想到 OOM 异常时,我再次测试了 S2 上的代码。我生成了一个 10MB 的 SQLite 未加密数据库,并使用我的代码正确地转换了它。

谁能给我一个提示,我做错了什么?

最佳答案

听起来这里的人也有同样的问题,也许有帮助。

https://groups.google.com/forum/#!topic/sqlcipher/hZFpNSSP-c8

关于android - SQLCipher 致命信号 11 (SIGSEGV) 位于 0x756c66f2(代码=1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26361750/

相关文章:

Android 在不再可见时停止异步加载列表元素

android - 在 Android WebView 中捕获 "play video"事件

mysql - wso2设置数据库mysql

android - 确保 Android 上的 SQLite 使用 UTF-8 作为字符集

android - MotionLayout - 单击布局时行为不正确

java - DefaultHandler 是如何工作的?

php - 数据 Excel 到 MySql

database - Oracle 中的外部联接表 - 按每个日期单独联接

java - 在 sqlite 表中搜索数组

sql - SQLite模式匹配(不包含内容)