我使用 Android-NDK(交叉)编译了一个二进制文件,在编译/链接阶段没有错误。应用程序是静态链接的。
使用 Nesux7 模拟器我执行:
$ adb shell mount -o remount,rw /system
$ adb push myApp /system/bin
$ adb shell /system/bin/myApp
它工作“正常”并打印正确的输出。
然后我创建最终的 apk 并安装在真机上。它无法执行。调试应用程序:
$ adb shell
$ run-as com.blablabla.myapp
$ cd /data/data/com.blablabla.myapp/files/bin
$ ./myApp
引发下一个错误:
reloc_library[1306]: 21538 cannot locate 'log2'...
CANNOT LINK EXECUTABLE
在另一篇文章(NDK:libm 静态链接)上,有人抱怨 libm.a 和 libm.so 之间的差异,但无论如何,因为它适用于我的模拟器,我认为编译“还不错”。
我完全被困在这一点上。任何想法?