2017-02-09 22 views
9

Używam systemu ORM greendao. Próbuję zaszyfrować bazę danych przy użyciu SQLCipher. Greendao automatycznie obsługuje sqlcipher. Napisałem poniższy kod do szyfrowania.Android Nie można szyfrować bazy danych za pomocą narzędzia sqlcipher za pomocą greendao

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

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

Jednak ilekroć wykonać jakąkolwiek operację bazy danych przy użyciu tej sesji, to daje błąd

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) 

Moi Gradle zależności są->

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' 

moje zasady PROGUARD są

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

Jak zaszyfrować bazę danych za pomocą greendao i SQLCipher?

PS: Database db = helper.getEncryptedWritableDb("mySecretPassword"); linia ta generuje błąd podczas wykonywania dowolnej operacji na bazie danych.

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

Czy masz wtyczki Gradle w ścieżce klas projektu? ['classpath 'org.greenrobot: greendao-gradle-plugin: 3.2.1''] (https://github.com/greenrobot/greenDAO#add-greendao-to-your-project) – maxoumime

+0

@maxoumime kiedy dodałem to linii, mam ten błąd duplikatu plików, jak ten wspomniany tutaj ..... http://stackoverflow.com/questions/39935916/generate-duplicate-class-in-greenado-in-android jak rozwiązać ten problem? –

Odpowiedz

Powiązane problemy