android - sqlcipher 因 "not an error"堆栈跟踪而崩溃

标签 android sqlcipher

我正在尝试在我的 API 16 (Motorola Xoom 4.1.2) 项目中使用 sqlcipher (2.0.8) 并获取以下堆栈跟踪。我在 libs 的 armeabi 文件夹中有 3 个 so 库,在 assets 文件夹中有 icudt46l.zip。我在 Activity 的 onCreate 中有 SQLiteDatabase.loadLibs(context);。然而,当我创建数据库时应用程序崩溃了。

11-08 21:00:33.050: E/AndroidRuntime(2222): FATAL EXCEPTION: Main:
11-08 21:00:33.050: E/AndroidRuntime(2222): net.sqlcipher.database.SQLiteException: not an error
11-08 21:00:33.050: E/AndroidRuntime(2222):     at net.sqlcipher.database.SQLiteDatabase.dbopen(Native Method)
11-08 21:00:33.050: E/AndroidRuntime(2222):     at net.sqlcipher.database.SQLiteDatabase.<init>(SQLiteDatabase.java:1952)
11-08 21:00:33.050: E/AndroidRuntime(2222):     at net.sqlcipher.database.SQLiteDatabase.openDatabase(SQLiteDatabase.java:902)
11-08 21:00:33.050: E/AndroidRuntime(2222):     at net.sqlcipher.database.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:945)
11-08 21:00:33.050: E/AndroidRuntime(2222):     at net.sqlcipher.database.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:107)

最佳答案

原因是我在库项目的 Assets 文件夹中有icudt46l.zip。我必须将 icudt46l.zip 复制到应用程序项目的 Assets 文件夹中。这是关于此的更多信息 https://github.com/sqlcipher/android-database-sqlcipher/issues/64

关于android - sqlcipher 因 "not an error"堆栈跟踪而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13302849/

相关文章:

android - osmdroid 和 Android 应用程序的地理点是否不同?

android - 检索数据库中所有表的列表

android - 如何在 Flutter 中设置间隔?

android - 如何在 Android 中的图片上写文字并保存?

android - 从 Google Play 中删除过时的测试版

android - 获取 "sqlite3_open_v2("mydatabase.db", &handle, 6, NULL) failed"after using sqlcipher in Android

objective-c - 不知道如何使用 SQLCipher 加密数据库

android - 如何存储用于 Android 的 SQLCipher 中的 key

android - 将 sqlcipher 从 3.5.2 升级到 4.0.1 后,GreenDAO 无法访问现有数据库

flutter - 如何在Flutter中加密SQLite数据库?