我使用sqlcipher 3. *来加密我的数据库。它工作得很好;但现在我想迁移到新数据库(版本2)。当我更改数据库版本时,打开数据库不起作用,无法打开以前的数据库。
myDataBase = SQLiteDatabase.openOrCreateDatabase(DB_PATH,DB_PASS, null);
类SQLiteDatabase
this.dbopen(this.mPath, this.mFlags);
mFlags
没有价值。
第二个问题是数据库版本。总是返回0。
我当前的sqlcipher版本是3.3.1-2,它是从Maven
添加的。
我将icudt46l.zip
添加到assets
文件夹。
并将commons-codec.jar
,quava-r09.jar
和sqlcipher-javadoc.jar
添加到libs
文件夹。
由于
答案 0 :(得分:1)
听起来好像没有设置数据库的版本。您可以使用setVersion(…)
实例中的getVersion()
和SQLiteDatabase
手动执行此操作,或者如果您是SQLiteOpenHelper
的子类,则需要提供值。我们有一个test,用于验证版本号随onUpgrade(…)
子类更改后调用SQLiteOpenHelper
函数。