调试HelloJni的本机代码

Jef*_*ffG 5 android-ndk

我已经尝试了几天调试样本hello-jni的c代码,没有成功.我已经安装了所有要求并且跟踪了许多博客文章(每次都重复这个过程)以尝试使其正常工作.

我在用

  • Windows 7 64位
  • Eclipse Juno与CDT 8.0.2
  • Android NDK r8b
  • Android SDK 20.0.3
  • 安装了make,gcc-core和gcc-g ++的最新cygwin(虽然我认为 NDK r8b不需要这个?)

我已经按照 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个库的共享库符号,例如/ system/bin/linker.

使用"info sharedlibrary"命令查看完整列表.

你需要"set solib-search-path"或"set sysroot"吗?

警告:无法找到动态链接器断点功能.

GDB将无法调试共享库初始化程序并跟踪显式加载的动态代码.

退出(在程序恢复时期望信号SIGINT)

Jef*_*ffG 4

事实证明,我使用的上述指南就是我所需要的,并且一切正常。

警告消息只是......警告,因此本机代码的调试一直有效。我的问题是本机函数调用,在 gdb 可以附加之前,我的断点立即被调用。我将 JNI 函数调用放入 onClick 中,发现我的断点最终被命中。

我希望上面的链接和这个答案可以帮助别人。谢谢...