我正在使用SQLite Db将SQLCipher集成到一个应用程序中。当应用程序启动时,我收到“应用程序意外停止”错误。当我查看LogCat时,我看到初始错误是“CREATE TABLE android_metadata failed”。我对此应用程序所做的唯一更改是添加代码以集成SQLCIpher。我确定我没有正确编码,但我不确定我错过了什么。以下内容已经完成:
1.java.io.file,info,guardianproject.database.sqlcipher.SQLiteDatabase,android.os.Bundle和android.app.activity已导入。 2. InitializeSQLCipher()已添加到启动活动的onCreate方法
private void InitializeSQLCipher() {
SQLiteDatabase.loadLibs(this);
File databaseFile = getDatabasePath ("mydatabase.db");
databaseFile.mkdirs();
databaseFile.delete();
SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(databaseFile, "password", null);
database.execSQL("create table t1(a, b)");
database.execSQL("insert into t1(a, b) values(?, ?)", new Object[]{"one for the money", "two for the show"});
}
答案 0 :(得分:0)
最可能的答案是您尚未将ICU资源文件移动到资产目录中。确保将icu * .zip复制到您的资源文件夹中并将其包含在您的构建中。
答案 1 :(得分:0)
CommonsWare提供了说明该概念的示例代码。请查看here。
答案 2 :(得分:0)
删除了“。”来自databasename.db(例如datadasedb)