Android アプリケーションで共有ライブラリ (.so) を使用する際に問題が発生しています。私は3つのプロジェクトを持っています:
ネイティブ コード プロジェクト => .so ライブラリに C++ ファイルをビルドlibNative.soと呼びましょう
Android ライブラリ プロジェクト => ネイティブ コードを呼び出します。このプロジェクトの出力は .jar ファイルです。「 stack.jar」としましょう
Android ライブラリ プロジェクトを使用した Android アプリのサンプルです。
サンプル アプリケーション (3) ライブラリのプロパティ タブでは、stack.jar ファイルを .so ライブラリとリンクするように構成しました。私の .so ネイティブ ライブラリは、生成された APK に適切に含まれています。=> Eclipse はそれを " lib /armeabi" フォルダーにコピーします。
スマートフォンで APK を起動すると、次のエラーが表示されます。
Caused by: java.lang.UnsatisfiedLinkError: Couldn't load libNative:
findLibrary returned null at
java.lang.Runtime.loadLibrary(Runtime.java:365) at
java.lang.System.loadLibrary(System.java:535)
エラーは、Eclipse がlibsではなく lib フォルダーに .so ライブラリをコピーし、その System.loadLibrary がパスlibs/armeabi ...を探していることだと思います。または、私は完全に間違っているかもしれません!
ご協力ありがとうございました。
編集: APK をインストールすると、.so lib がdata/data/mypackage/libフォルダーにコピーされます。それでも、読み込めません。アプリケーションサンプルで直接ではなく、.jar ファイルでロードが行われているためでしょうか??