我正在尝试在API 16(Motorola Xoom 4.1.2)的项目中使用sqlcipher(2.0.8)并获得以下堆栈跟踪。我在libs中的armeabi文件夹中有3个这样的库,在assets文件夹中有icudt46l.zip。我在活动的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)
答案 0 :(得分:13)
原因是我在图书馆项目的资产文件夹中有icudt46l.zip。我必须将icudt46l.zip复制到应用程序项目的资产文件夹中。以下是有关此https://github.com/sqlcipher/android-database-sqlcipher/issues/64
的更多信息答案 1 :(得分:0)
尝试取消暂停您的应用并重新安装.. 在我的情况下,eclipse面临一些添加新资产文件的问题。