4

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

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)
4

2 回答 2

13

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

于 2012-11-09T05:54:35.873 回答
0

尝试卸载您的应用程序并重新安装它。在我的情况下,eclipse 在添加新资产文件时面临一些问题。

于 2014-09-09T23:24:14.810 回答