ldd相当于android

Pav*_*l P 21 android android-ndk ldd readelf

我有一个libTest.so,在某些设备上没有加载.logcat绝对没用.使用arm-linux-androideabi-readelf.exe -d libTest.so我能够看到libTest.so需要的所有必需的库.我将它们全部拉进我本地PC上的同一个文件夹中.

如何找出哪些符号丢失以及哪个库?我只有NDK的标准工具集(nm,readelf,objdump等).哪个工具以及如何使用它以便它解析我的libTest.so和所有依赖的libs并告诉我哪个符号阻止我的lib加载到目标设备上.

Pav*_*l P 19

感谢android开发人员.我的功能请求已经实现了:)现在我们有了ndk-depends,一个允许对依赖项进行故障排除的工具.

编辑:它虽然没有完整的符号解析.例如,如果您针对Android-14构建并尝试使用旧Androids中不存在的方法,则此工具不会列出缺少的符号.这部分在ndk-depends中留作TODO.


小智 14

如果您没有NDK,请尝试:

readelf --dynamic filename | grep NEEDED
Run Code Online (Sandbox Code Playgroud)

显示elf二进制文件的动态库.


小智 5

在 Android 终端试试这个:
strings /path/to/your/file | grep ^lib 在这里找到:https : //forum.xda-developers.com/showthread.php?t=2737126&page=5