我已经尝试了几天调试样本hello-jni的c代码,但没有成功。我已经安装了所有要求并且跟踪了许多博客文章(每次都重复这个过程)以尝试使其正常工作。
我正在使用
我跟着这个 http://developer.android.com/tools/sdk/ndk/index.html 设置和构建apk。它构建和安装很好,我可以调试java代码,如果作为Android应用程序启动
我跟着这篇关于NDK插件的文章 http://tools.android.com/recent/usingthendkplugin 但是当在c代码中使用断点作为Android Native Application启动时,应用程序将启动并正常运行,不会出现断点并且没有错误消息!
非常感谢任何帮助。 谢谢!
编辑:
这是在清除之前在控制台中显示半秒的一些错误
警告:解析目标库列表时(第2行):没有为/ system / bin / linker定义的段
警告:无法加载52个库的共享库符号,例如/系统/ bin中/接头。
使用“info sharedlibrary”命令查看完整列表。
您需要“set solib-search-path”还是“set sysroot”?
警告:无法找到动态链接器断点函数。
GDB将无法调试共享库初始化程序 并跟踪显式加载的动态代码。
退出(在程序恢复时期望信号SIGINT)
答案 0 :(得分:4)
原来我使用的上述指南都是我需要的,一切正常。
警告消息只是...警告,所以本机代码的调试一直都在工作。 我的问题是本机函数调用,我的断点被立即调用 - 在gdb可以附加之前。我把JNI函数调用放到onClick中,发现我的断点毕竟被打了。
我希望以上链接和这个答案可以帮助某人。 谢谢......
答案 1 :(得分:0)
根据NDK文件.. "目前' ndk-gdb'需要Unix shell才能运行。这意味着 Cygwin需要在Windows上运行它。我们希望摆脱这一点 未来NDK版本的限制。"
JeffG你能在没有cygwin的情况下调试Windows上的本机代码吗?