[将sqlcipher从3.5.2升级到4.0.1后,GreenDAO无法访问现有数据库

问题描述 投票:1回答:1

我正在将GreenDAOSQLCipher一起使用。将SQLCipher从3.5.2升级到4.0.1后,我的应用无法访问旧的加密数据库。我已经搜索了解决方案,发现需要在postKeySQLiteDatabaseHook中运行PRAGMA cipher_migrate来迁移数据库。我尝试过这样,但没有任何变化。

    SQLiteDatabaseHook hook = new SQLiteDatabaseHook() {
        @Override
        public void preKey(SQLiteDatabase database) {

        }

        @Override
        public void postKey(SQLiteDatabase database) {
            database.execSQL("PRAGMA key = '" + key + "';");
            database.execSQL("PRAGMA cipher_migrate;");
        }
    };
    Database db = new EncryptedDatabase(SQLiteDatabase.openOrCreateDatabase("DB.db", key, null, hook));
    return new DaoMaster(db).newSession();

我正在将GreenDAO与SQLCipher结合使用。将SQLCipher从3.5.2升级到4.0.1后,我的应用程序无法访问旧的加密数据库。我已经在寻找解决方案,发现我需要...

android greendao sqlcipher
1个回答
0
投票

您需要路径时将"DB.db"传递到openOrCreateDatabase。您想要执行以下操作:

© www.soinside.com 2019 - 2024. All rights reserved.