我正在尝试调试我的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"的动态部分;是不是在预期的地址(错误的库或版本不匹配?)
警告:" /home/raneez/Documents/android/workspace/SmartCardLibrary/obj/local/armeabi/libssl.so" .dynamic部分。是不是在预期的地址(错误的库或版本不匹配?)
警告:无法加载120个库的共享库符号,例如/系统/斌/连接器。 使用" info sharedlibrary"命令查看完整列表。
你需要"设置solib-search-path"或者"设置sysroot"? 警告:无法找到动态链接器断点功能。 GDB将重新进行重试。同时,很可能 GDB无法调试共享库初始化程序 或者在dlopen()之后解决挂起的断点。
[新主题13826]
[新主题13827]
[新主题13828]
[新主题13829]
[新主题13833]
[新主题13834]
[新主题13835]
[新主题13837]
[新主题13838]
[新主题13850]
[新主题13852]
答案 0 :(得分:0)
错误发生在您正在使用的libjpeg.so文件中,它是针对x86_64桌面Linux编译的,但您需要为正在运行的Android架构重新编译版本(armeabi-v7a,x86等)。
关于libcrypto.so和libssl.so libs的其他警告。使用的是来自设备的,而不是来自您的应用程序。你很好。