7

DBファイルを暗号化/復号化するために、Android用のSQLCipher Libraryを使用しています。ライブラリを追加するために、API で説明されている正確な手順に従っています。

しかし、プロジェクトを実行すると、Unsatisfied link エラーが発生します... logcat は次のとおりです...

11-15 13:12:08.482: ERROR/AndroidRuntime(340): java.lang.UnsatisfiedLinkError: dbopen
11-15 13:12:08.482: ERROR/AndroidRuntime(340):     at info.guardianproject.database.sqlcipher.SQLiteDatabase.dbopen(Native Method)
11-15 13:12:08.482: ERROR/AndroidRuntime(340):     at info.guardianproject.database.sqlcipher.SQLiteDatabase.<init>(SQLiteDatabase.java:1876)
11-15 13:12:08.482: ERROR/AndroidRuntime(340):     at info.guardianproject.database.sqlcipher.SQLiteDatabase.openDatabase(SQLiteDatabase.java:870)
11-15 13:12:08.482: ERROR/AndroidRuntime(340):     at info.guardianproject.database.sqlcipher.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:904)
11-15 13:12:08.482: ERROR/AndroidRuntime(340):     at info.guardianproject.database.sqlcipher.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:107)
11-15 13:12:08.482: ERROR/AndroidRuntime(340):     at com.myproject1.getInstance(AppData.java:60)

参考やヒントを教えてください。

4

3 に答える 3

15

java.lang.UnsatisfiedLinkErrorSQLCipher ライブラリが使用前に初期化されなかった場合に発生します。

問題を解決するには、SQLiteDatabase.loadLibs(this);使用する前に電話してください。

例えば:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    SQLiteDatabase.loadLibs(this);

    // Set up the window layout
    setContentView(R.layout.main);

    //instance of database adapter
    db = DBAdapter.getInstance(this);

    //load database
    db.load("password goes here");
于 2012-04-30T15:03:13.760 に答える
3

Eclipse プロジェクトの libs/armae​​bi フォルダーに .so ファイルを追加して再構築する必要があります。

于 2011-12-08T08:33:09.873 に答える
1

使用している Android 用 SQLCipher のバージョンを教えてください。最近、多くの変更を加えた Android 用 SQLCipher の新しいバージョンをリリースしました。現在、最新のリリースを使用していない場合は、ここから入手できます

于 2011-11-15T15:15:35.587 に答える