0

Androidスタジオで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

この問題の解決策を見つけました。ログを見たところ、実際の問題は

Unable to copy icudt46l.zip file

テストスイート内loadlibsで ofを呼び出していなかったために発生していました。SQLiteCipher

だから私setup()は私のテストクラスのメソッドに次の行を追加しました

SQLiteDatabase.loadLibs(getContext(), getContext().getFilesDir());
于 2015-09-08T12:41:47.890 に答える
0

アプリを初めて実行した後、データベースが適切に閉じられていない可能性があります。SQLiteConnection クラスの Close メソッドを使用してみてください。

db.Close()
于 2015-06-11T15:26:26.577 に答える