使用eclipse CDT调试android native代码

11 篇文章 0 订阅

1下载NDK,我使用的是NDK-R9D

2下载Eclipse for jave

3下载CDT安装

http://download.eclipse.org/tools/cdt/releases/indigo

4下载android SDK +NDK eclipse 插件

https://dl-ssl.google.com/android/eclipse/


安装完成后设置Android SDK 和 NDK路径

Eclipse->Window->Preferences->Android->set path to SDK

设置NDK路径

Eclipse->Window->Preferences->Android->NDK->set path to the NDK

右键你的工程,Android Tools->Add ntive support

到此为止你应该可以编译你的工程了。


如果你要调试C++代码,右键你的工程 Properties->C/C++ Build->Build command->输入ndk-build NDK_DEBUG=1

完成上面步骤里应该就可以在C++源代码中设置断点,右键你的工程->Debug As->Android Native Application


遇到的问题:

1.C/C++断点不中断

解决办法

a 在Android设备上设置->开发人员选项->选择调试应用


b 我在另一台机器上上面那招也不管用,最后在StackOverflow上找到一个办法。

System.loadLibrary前加入下面代码的一种:

Thread.sleep(2000);

或者

android.os.Debug.waitForDebugger();

  就是等待gdb建立好链接在转入.so库。


2选择Android Native Application控制台出现下列提示,导致调试无法进行

Unknown Application ABI: 
Unable to detect application ABI's
...

解决方法:

1如果穿插出现"Canot find module with tag in import ..."

这一般是因为你编译的时候使用NDK_MODULE_PATH作为参数传送给ndk-build,但是调试的时候ndk找不到模块了。

简单的解决办法是在调试的时候注释掉你Android.mk中的(call import-module,...)语句。

2打开NDK目录中build/core/add-application.mk文件,查找$(call __ndk_info,WARNING: APP_PLATFORM $(APP_PLATFORM) is larger than android:minSdkVersion $(APP_MIN_PLATFORM_LEVEL) in $(APP_MANIFEST))

前面加入注释#就好了

2或者只要适当输出比较干净不出警告也可以。


总结其实步骤很简单,就上面的做对了就能行。但是中间会出一些很莫名其妙的问题。


参考:

http://tools.android.com/recent/usingthendkplugin

http://stackoverflow.com/questions/17705109/how-to-debug-c-c-code-ndk-in-eclipse


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值