0

SQLCipherをSQLiteDbを使用するアプリケーションに統合しています。アプリを起動すると、「アプリケーションが予期せず停止しました」というエラーが表示されます。LogCatを見ると、最初のエラーは「CREATETABLEandroid_metadatafailed」であることがわかります。このアプリケーションに加えた唯一の変更は、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"});
     }
4

3 に答える 3

0

最も可能性の高い答えは、ICUリソースファイルをアセットディレクトリに移動していないということです。必ずicu*.zipをアセットフォルダーにコピーして、ビルドに含めてください。

于 2012-05-18T15:43:54.460 に答える
0

CommonsWareは、概念を説明するサンプルコードを提供しています。こちらをご覧ください。

于 2012-05-20T00:12:26.683 に答える
0

「。」を削除しました databasename.db(egdatabasedb)から

于 2012-08-21T18:01:37.787 に答える