0

在 android studio 中运行 junit 测试用例时遇到问题。这个问题很奇怪,因为当我第一次在手机中运行测试用例时,它工作得很好,但是如果应用程序已经安装并且当我运行测试用例时,我会收到以下错误:-

net.sqlcipher.database.SQLiteException: not an error
at net.sqlcipher.database.SQLiteDatabase.dbopen(Native Method)
at net.sqlcipher.database.SQLiteDatabase.<init>(SQLiteDatabase.java:1942)
at net.sqlcipher.database.SQLiteDatabase.openDatabase(SQLiteDatabase.java:875)
at net.sqlcipher.database.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:907)
at net.sqlcipher.database.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:132)
at net.sqlcipher.database.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:99)

所有 sqlcipher 依赖项均已正确配置。

4

2 回答 2

0

第一次运行应用程序后,数据库可能未正确关闭。尝试使用 SQLiteConnection 类中的 Close 方法:

db.Close()
于 2015-06-11T15:26:26.577 回答
0

我找到了这个问题的解决方案。当我在日志中看到时,我发现实际问题是

Unable to copy icudt46l.zip file

发生这种情况是因为我没有在测试套件内调用loadlibsof 。SQLiteCipher

setup()所以我在我的测试类的方法中添加了以下行

SQLiteDatabase.loadLibs(getContext(), getContext().getFilesDir());
于 2015-09-08T12:41:47.890 回答