Pro Android C++ with NDK读书笔记 之 NDK下断点调试
背景
早期我在写Android C层的代码都是直接在subline Text中编写的,个人觉得eclipse对ndk层的支持并不那么美。老家伙了,又是个做事严谨的人,代码崩溃,直接查看logcat日志,看看代码基本都能知道哪里出错,并不需要借助ide来调试。当然,这个只限于个人开发者。团队开发是另一种情况,而且运用不当的开源库也会出现种种难以定位的问题。所以喽,有必要了解下ndk C层代码的断点调试
环境
win7
ADT版本Build: v22.6.2-1085508
NDK版本 android-ndk-r9d-windows-x86
使用步骤
. eclipse配置NDK路径
Window--->Preference菜单 --> Android标签下的NDK 配置NDK路径
. 导入工程
. 声明app可调试
<application android:label="@string/app_name"android:debuggable="true">
. 右键工程,选择 Add Native Support
--碰到问题
[2015-12-14 20:27:43 - Unable to launch cygpath. Is Cygwin on the path?] java.io.IOException: Cannot run program "cygpath": CreateProcess error=2, 系统找不到指定的文件。
安装cygwin,配置好环境变量(如何不重启电脑让环境变量生效,自行搜索)
重启eclipse,然后rebuild,
. 编译出错 Method 'NewStringUTF' could not be resolved
查看工程头文件目录配置,没出错,
这个并不是错误,只能算是eclipse对NDK的支持不够完美。如何绕过?
右键工程 property->C/C++ General->Code Analysis—>配置当前工程(或者workspace)->使 method cannot be resolved 不选中(即此项不进行报错 )
成功了!!!
. 设置断点,右键工程,选择Debug As --> Android Native Application
至此,断点调试成功