来编译jni文件夹下的c++文件. NDK_DEBUG=1这个参数可以保证编译后的native方法可调试。
* 另外一种方法是修改AndroidManifest.xml 中的application的属性
<application android:debuggable="true">
2. ndk-gdb需要adb的支持,在~/.bashrc中添加adb的路径到PATH,确保任意路径都能支持adb命令:
# add adb path
export PATH=/home/ruoyao/android-sdk-linux/platform-tools:$PATH
*ndk-build, ndk-gdb命令也放在~/.bashrc里面,以便到处支持。
alias ndk-build='~/android-ndk/ndk-build'
alias ndk-gdb='~/android-ndk/ndk-gdb'
使之生效,就在terminal中输入 source ~/.bashrc
3. 此时应该可以在你的anroid项目目录下启动ndk-gdb,输入
ndk-gdb
不过据说要想调试android jni里c++代码,要先在java文件里c++方法调用前打断点,然后用上面方法启动ndk-gdb,然后释放断点进入c代码。Sign~ 我没成功,继续尝试中。
4. 改用图形界面调试。用eclipse调试 native c code- 需要安装sequoyah插件 (参考:http://www.cnblogs.com/shadox/archive/2011/12/02/2272564.html)
插件地址:http://download.eclipse.org/sequoyah/updates/2.0/
这个插件的安装险些将我累死,其实就是个小坑:eclipse help/install new software/ ,然后一定要去掉Group items by categories 选项的钩,否则看不到下载项
用法的核心是先在java文件调用jni的入口处和下一行都打上断点,并调用java debug。停在入口处后,马上再运行c++ debug,当然得在eclipse先设置好啦,其实就是ndk-gdb,只不过设置过程万里长。 ps,我设定好了,不过最后仍然没有debug进c文件, sign~~