我正在尝试在我的 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/