Android Невозможно зашифровать базу данных с помощью sqlcipher с помощью greendao

Я использую greendao ORM. Я пытаюсь зашифровать свою базу данных с помощью SQLCipher. Greendao автоматически поддерживает sqlcipher. Поэтому я написал следующий код для шифрования.

 DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(context, "encrypted-db",null);

        Database db = helper.getEncryptedWritableDb("mySecretPassword");
        DaoSession session = new DaoMaster(db).newSession();
        return session;

Однако всякий раз, когда я выполняю какую-либо операцию с базой данных, используя этот сеанс, он выдает ошибку

 Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lorg/greenrobot/greendao/database/DatabaseOpenHelper$EncryptedHelper;
                                                                       at org.greenrobot.greendao.database.DatabaseOpenHelper.checkEncryptedHelper(DatabaseOpenHelper.java:121)
                                                                       at org.greenrobot.greendao.database.DatabaseOpenHelper.getEncryptedWritableDb(DatabaseOpenHelper.java:133)

Мои зависимости от gradle->

compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.2.0'
    compile 'org.greenrobot:greendao:3.2.0'
    compile 'com.google.code.gson:gson:2.8.0'

Мои правила Proguard являются

-keepclassmembers class * extends org.greenrobot.greendao.AbstractDao {
public static java.lang.String TABLENAME;
}
-keep class **$Properties
# If you do not use Rx:
-dontwarn rx.**

Итак, как зашифровать мою базу данных, используя greendao и SQLCipher?

PS: Database db = helper.getEncryptedWritableDb("mySecretPassword");эта строка генерирует ошибку при выполнении любой операции с базой данных.

 Database db = helper.getEncryptedWritableDb("mySecretPassword");

1 ответ

Решение

Вам также нужно добавить зависимость для SQLCipher, Добавьте эту строку в ваши зависимости Gradle:

compile 'net.zetetic:android-database-sqlcipher:3.5.4@aar'

Источник: Шифрование базы данных

Другие вопросы по тегам