3

プロジェクトに SQLCipher を追加しようとしています。jar ファイルをプロジェクトにリンクすることはできますが、提供された .so ファイルのリンクに問題があります。

そのため、DB を開こうとすると UnSatisfiedLinkError が発生します。

プロジェクトに .so ファイルを追加して実行するための最良の方法を教えてください。

4

2 に答える 2

4

jarファイルに加えて、.soファイルを含める必要があります。私のプロジェクトでは、次のことがあります。

jar files in project_root/libs/
.so files in project_root/libs/armeabi/

また、.jarファイルが正しく追加されていることを確認してください。Project Properties -> Java Build Path -> Librariesタブに移動し、、、がそこに追加されていることを確認commonc-codec.jarします。gueva-r09.jarsqlcipher.jar

編集

1) Add a single sqlcipher.jar and a few .so’s to the application libs directory
2) Update the import path from android.database.sqlite.* to info.guardianproject.database.sqlite.* in any source files that reference it. The original android.database.Cursor can still be used unchanged.
3) Init the database in onCreate() and pass a variable argument to the open database method with a password*:

    SQLiteDatabase.loadLibs(this); //first init the db libraries with the context
    SQLiteOpenHelper.getWritableDatabase(“thisismysecret”):
于 2011-11-18T10:39:43.290 に答える
0

adb shell コマンドを使用して、解凍後にシミュレーターにデプロイされているファイルを確認できますか。以前、.so ファイルが .apk ファイルにパッケージ化されていない問題を確認しました。これは、IDE がアプリケーションの正しいネイティブ ライブラリ パスを指していないことが原因です。

于 2011-11-18T17:19:34.873 に答える