2012-05-17 2 views
0

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"}); 
    } 
+0

FWIW, 사용중인 SQLCipher를 보여주는 샘플 앱은 다음과 같습니다. https://github.com/commonsguy/cw-advandroid/tree/master/Database/ConstantsSecure – CommonsWare

답변

0

"."이 삭제되었습니다. from databasename.db (예 : databasedb)

0

의에서 onCreate 메소드에 추가되었습니다. icu * .zip을 자산 폴더에 복사하여 빌드에 포함하십시오.

0

CommonsWare는 개념을 보여주는 샘플 코드를 제공합니다. 그것을 밖으로 검사하십시오 here.

관련 문제