将SqlCipher版本更新为4.2.0版本后,我崩溃了

时间:2019-06-10 11:26:18

标签: java android sqlcipher sqlcipher-android

在将SqlCipher版本更新为4.2.0之后,尽管在以前的版本3.5.9中可以正常工作,但回溯跟踪低于标准水平,我会崩溃。

net.sqlcipher.database.SQLiteException: file is not a database

1 个答案:

答案 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) {

            }
        });