在将SqlCipher版本更新为4.2.0之后,尽管在以前的版本3.5.9中可以正常工作,但回溯跟踪低于标准水平,我会崩溃。
net.sqlcipher.database.SQLiteException: file is not a database
答案 0 :(得分:0)
它正在为新的数据库文件formate创建问题[注意:SqlCipher更新并以新版本更改了数据库文件格式,以确保更高的安全性]。因此,它无法在db位置中找到数据库并导致崩溃。只需迁移数据库即可解决问题。迁移的示例代码如下:
super(context, DB_NAME, null, DB_VERSION, new SQLiteDatabaseHook() {
@Override
public void postKey(SQLiteDatabase database) {
database.rawQuery("PRAGMA cipher_migrate", null).close();
}
@Override
public void preKey(SQLiteDatabase database) {
}
});