我正在尝试调试我的android应用程序,该应用程序使用了一个具有本地代码的库。我研究了这个SO问题,并配置了其中提到的ndk调试器,能够启动调试器,但我无法逐步通过我设置的断点。在启动调试器之前,我收到了以下警告:
映射共享库节时出错:`/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/libjpeg.so':不是可执行格式:文件格式无法识别
警告:"/home/ranez/Documents/android/workspace/SmartCardLibrary/obj/local/armeabi/libcrypto.so"的动态部分不在预期地址(库错误或版本不匹配?(
警告:"/home/ranez/Documents/android/workspace/SmartCardLibrary/obj/local/armeabi/libssl.so"的动态部分不在预期地址(错误的库或版本不匹配?(
警告:无法加载120个库的共享库符号,例如/system/bin/linker。使用"info sharedlbrary"命令查看完整的列表。
您需要"设置solib搜索路径"还是"设置sysroot"?警告:找不到动态链接器断点函数。GDB将按事件方式重试。同时,很可能GDB无法调试共享库初始化程序或在dlopen((之后解析挂起的断点。
[新线程13826]
[新线程13827]
[新线程13828]
[新线程13829]
[新线程13833]
[新线程13834]
[新线程13835]
[新线程13837]
[新线程13838]
[新线程13850]
[新线程13852]
错误出现在您使用的libjpeg.so文件上,它是为x86_64桌面linux编译的,但您需要为运行的Android架构(armeabi-v7a、x86等(重新编译一个版本。
关于libcrypto.so和libssl.so libs的其他警告。使用的是来自设备的内容,而不是来自应用程序的内容。你对这些很满意。