SQLite Db가있는 응용 프로그램에서 SQLCipher를 통합하려고합니다. 응용 프로그램이 시작되면 "응용 프로그램이 예기치 않게 중지되었습니다"라는 오류 메시지가 나타납니다. LogCat을 보면 초기 오류가 "CREATE TABLE android_metadata failed"라는 것을 알 수 있습니다. 이 응용 프로그램에 대한 유일한 변경 사항은 SQLCIpher를 통합하는 코드를 추가하는 것입니다. 나는 그것을 올바르게 코딩하지 않았지만 내가 무엇을 놓쳤는 지 확신하지 못한다고 확신한다. 다음이 수행되었습니다 :SQLCipher CREATE TABLE android_metadata failed
1.java.io.file, info, guardianproject.database.sqlcipher.SQLiteDatabase, android.os.Bundle 및 android.app.activity를 가져 왔습니다. 2. InitializeSQLCipher()는 가장 가능성있는 대답은 당신이 자산 디렉토리로 ICU 리소스 파일을 이동하지 않은 것입니다 스플래시 활동
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"});
}
FWIW, 사용중인 SQLCipher를 보여주는 샘플 앱은 다음과 같습니다. https://github.com/commonsguy/cw-advandroid/tree/master/Database/ConstantsSecure – CommonsWare