我在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依赖项。
答案 0 :(得分:0)
首次运行应用后,数据库可能无法正常关闭。尝试使用SQLiteConnection类中的Close方法:
db.Close()
答案 1 :(得分:0)
我找到了解决这个问题的方法。 当我在日志中看到时,我发现实际问题是
loadlibs
之所以发生这种情况,是因为我没有在测试套件中调用SQLiteCipher
setup()
。
所以我在测试类的SQLiteDatabase.loadLibs(getContext(), getContext().getFilesDir());
方法中添加了以下行
$ open -a "Google Chrome" --args --make-default-browser