2016-03-26 20 views
0

Veritabanımı şifrelemek için sqlcipher 3. * kullandım. Çok iyi çalışıyor; Ama şimdi yeni veritabanına (Sürüm 2) geçmek istiyorum. Veritabanı sürümünü değiştirdiğimde açık veritabanı çalışmıyor ve önceki veritabanını açamıyor.sqlcipher içinde veritabanı geçişi

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

İstisna SQLiteDatabase

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

mFlags değeri yok sınıfta bu hat görülür.

İkinci sorun, veritabanı sürümüdür. her zaman 0'a dönün. Geçerli sqlcipher sürümünün sürümü 3.3.1-2 olup, bunu Maven'dan ekleyebilirsiniz. icudt46l.zip dosyasını assets klasörüne ekliyorum. ve commons-codec.jar, quava-r09.jar ve sqlcipher-javadoc.jar klasörlerini libs klasörüne ekleyin.

Teşekkür

cevap

0

Bu veritabanının sürümü ayarlı değil sanki duyulur. Bunu, SQLiteDatabase örneğinizden setVersion(…) ve getVersion() ile el ile yapabilir veya SQLiteOpenHelper alt sınıfını kullanıyorsanız bir değer sağlamanız gerekir. Sürüm numarası SQLiteOpenHelper alt sınıfı ile değiştiğinde onUpgrade(…) işlevini doğrulayan bir test sahibiz.

+0

Teşekkürler. Bunu elle ayarlıyorum ('setVersion (...)'). – Nasir

İlgili konular