2016-03-26 6 views
0

データベースを暗号化するためにsqlcipher 3. *を使用しました。それは非常にうまくいく。しかし、今では新しいデータベース(バージョン2)に移行したいと思います。データベースのバージョンを変更すると、開いているデータベースが機能せず、以前のデータベースを開くことができません。sqlcipherでのデータベース移行

myDataBase = SQLiteDatabase.openOrCreateDatabase(DB_PATH,DB_PASS, null); 

クラスSQLiteDatabase

this.dbopen(this.mPath, this.mFlags); 

mFlagsにこの行で例外を発生値がありません。

第2の問題は、データベースのバージョンです。常に0を返します。 私の現在のsqlcipherのバージョンは、Mavenからそれを加える3.3.1-2です。 icudt46l.zipassetsフォルダーを追加します。 と、commons-codec.jarquava-r09.jarsqlcipher-javadoc.jarlibsというフォルダを追加します。

おかげ

答えて

0

データベースのバージョンが設定されていないかのように聞こえます。 SQLiteDatabaseインスタンスからsetVersion(…)getVersion()を手動で実行するか、SQLiteOpenHelperをサブクラス化する場合は値を指定する必要があります。 testSQLiteOpenHelperサブクラスでバージョン番号が変更されるとonUpgrade(…)関数が呼び出されることを確認するものです。

+0

ありがとうございました。手動で設定します( 'setVersion(...)')。 – Nasir