次のようなフォルダー構造の 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 のインストール時に何が起こるかについては、どこで確認できますか?
私が提供できる具体的な情報があれば、コメントでお知らせください。