9

次のようなフォルダー構造の Android プロジェクトがありlibsます。

/libs
  /armeabi
    libfoo.so
    libbar.so
    libmystuff.so
    libgnustl_shared.so
  /armeabi-v7a
    libfoo.so
    libbar.so

fooおよびbarサードパーティのライブラリであり、同じ JNI プロジェクトからのmystuffを必要とする別の Android JNI プロジェクトからの私自身のライブラリです。gnustl_shared

Eclipse でプロジェクトをビルドすると、生成された APK の内容を を使用して表示できますunzip -l。実際、これらのライブラリ ファイルがすべて含まれていることがわかります。

ただし、APK をインストールした後、他のライブラリが存在する場合でも、/data/data/com.myproject/libフォルダには何も含まれません。libgnustl_shared.so

これにより、必然的に次のエラーが発生します。

UnsatisfiedLinkError: Couldn't load gnustl_shared: findLibrary returned null

健全性チェックとして実行したところadb push ./libs/armeabi/libgnustl_shared.so /data/data/com.myproject/lib、確かに、アプリケーションは期待どおりに起動しました。

ビルド ログまたは Eclipse コンソールに、アプリのビルドまたはインストールに問題があったことを示唆するものは何も表示されません。

  • libgnustl_shared.soアプリケーションと一緒にインストールできない原因は何ですか?
  • APK のインストール時に何が起こるかについては、どこで確認できますか?

私が提供できる具体的な情報があれば、コメントでお知らせください。

4

3 に答える 3

0

libgnustl_shared.so は /armeabi ではなく/ armeabi-v7a のに必要だと思います

libgnustl_shared.so/armeabi-v7aにコピーしてみてください

于 2013-04-30T13:04:49.360 に答える