libsharedlibrary.soはSONAMEの項目がありません。あなたのシステムにreadelfがを持っていない場合、それは$ NDK /ツールチェーンとしてNDKで提供されていることを
$ readelf -dW libnative.so | grep NEEDED | grep libsharedlibrary
0x0000000000000001 (NEEDED) Shared library: [./obj/local/armeabi-v7a/libsharedlibrary.so]
ノート/腕のlinux-androideabi-4.9 /構築済み/:あなたは、おそらく現在、以下のようなものを参照してくださいlinux-x86_64/bin/arm-linux-androideabi-readelf(OSに合わせてパスを調整します)。ここのアーキテクチャは実際問題ではないことに注意してください。 readelfはマルチアーチツールです。すべてのツールチェーンのreadelfは正常に動作します。
何libsharedlibrary.soがSONAMEで構築された場合は、表示されるはずは次のとおりです。
$ readelf -dW libnative.so | grep NEEDED | grep libsharedlibrary
0x0000000000000001 (NEEDED) Shared library: [libsharedlibrary.so]
あなたはlibsharedlibrary.soで次のように表示されるはずです。
$ readelf -dW libsharedlibrary.so | grep SONAME
0x000000000000000e (SONAME) Library soname: [libsharedlibrary.so]
問題がlibsharedlibrary.soだったということです-Wl,-soname,libsharedlibrary.so
ldflagで構築されていません。 ndk-buildとCMakeがそれを行いますが、スタンドアローンのツールチェーンやカスタムビルドシステムを使用している場合は、自分で提供する必要があります。
[Android NDK:java.lang.UnsatisfiedLinkError:dlopenの取得に失敗しました:「libffmpeg.so」で参照されているシンボル「signal」を見つけることができません](https://stackoverflow.com/questions/28740315/android-ndk -getting-java-lang-unsatisfiedlinkerror-dlopen-failed-can not-loca) – Zoe
これは重複していません。 –