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