2012-05-17 3 views
0

Я интегрирую SQLCipher в приложение с SQLite Db. когда приложение запускается, я получаю сообщение об ошибке «приложение остановилось неожиданно». Когда я смотрю на 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() была добавлена ​​к методу 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

FWIW, здесь приведен пример приложения, использующего SQLCipher: https://github.com/commonsguy/cw-advandroid/tree/master/Database/ConstantsSecure – CommonsWare

ответ

0

Наиболее вероятным ответом является то, что вы не перемещали файлы ICU ресурсов в каталоге ресурсов. Убедитесь, что вы скопировали icu * .zip в свою папку с ресурсами и включили ее в свою сборку.

0

CommonsWare предоставил образец кода, иллюстрирующий концепцию. Проверьте это here.