0

我正在尝试调试我的 android 应用程序,该应用程序使用具有本机代码的库。我查看了这个SO question并配置了其中提到的 ndk 调试器,并且能够启动调试器,但我无法单步执行我设置的断点。在启动调试器之前,我收到了这个警告:

映射共享库部分时出错:`/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/libjpeg.so':不是可执行格式:文件格式无法识别

警告:“/home/raneez/Documents/android/workspace/SmartCardLibrary/obj/local/armeabi/libcrypto.so”的.dynamic部分不在预期的地址(错误的库或版本不匹配?)

警告:“/home/raneez/Documents/android/workspace/SmartCardLibrary/obj/local/armeabi/libssl.so”的.dynamic部分不在预期的地址(错误的库或版本不匹配?)

警告:无法加载 120 个库的共享库符号,例如 /system/bin/linker。使用“info sharedlibrary”命令查看完整列表。

你需要“set solib-search-path”还是“set sysroot”?警告:无法找到动态链接器断点函数。GDB 最终会重试。同时,GDB 很可能无法调试共享库初始化程序或在 dlopen() 之后解决挂起的断点。

[新线程13826]

[新线程13827]

[新线程13828]

[新线程13829]

[新线程13833]

[新线程 13834]

[新线程13835]

[新线程13837]

[新线程13838]

[新线程13850]

[新线程 13852]

4

1 回答 1

0

错误出现在您正在使用的 libjpeg.so 文件上,它是为 x86_64 桌面 linux 编译的,但您需要为您正在运行的 Android 架构(armeabi-v7a、x86 等)重新编译一个版本。

关于 libcrypto.so 和 libssl.so 库的其他警告。使用的是来自设备的那些,而不是来自您的应用程序的那些。你对这些没问题。

于 2014-05-06T07:04:01.210 回答