2017-02-09 4 views
9

私はgreendao ORMを使用しています。 SQLCipherを使用してデータベースを暗号化しようとしています。 Greendaoは自動的にsqlcipherをサポートします。だから私は暗号化のために次のコードを書いた。私はこのセッションを使用して、任意のデータベース操作を実行するたびにAndroid 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.** 
あるare-エラーになります

では、greendaoとSQLCipherを使用してデータベースを暗号化する方法は?

PS:Database db = helper.getEncryptedWritableDb("mySecretPassword"); この行は、データベース操作の実行時にエラーを生成します。

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

は、あなたのプロジェクトのクラスパスにGradleのプラグインを持っていますか? ['classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1''](https://github.com/greenrobot/greenDAO#add-greendao-to-your-project) – maxoumime

+0

@maxoumimeこれを追加したときライン、私はここに記載されているように、この重複するファイルのエラーを持って..... http://stackoverflow.com/questions/39935916/generate-duplicate-class-in-greenado-in-androidこれを解決するには? –

答えて

1

また、SQLCipherの依存関係を追加する必要があります。あなたのGradleの依存関係に次の行を追加します

compile 'net.zetetic:android-database-sqlcipher:[email protected]'

出典:Database Encryption

関連する問題