前段时间在在开发Cocos2d-x代码都是在sublime中开发,虽然也有高亮显示,但是整体开发起来很不爽,用记事本开发C、C++代码的效率低得离谱,也没法调试。最近在帮助QA搭建环境的过程中又找到了一些资料,因此记录一下。
Android NDK r7及以上版本已经集成了Cygwin编译环境,也就是说我们可以直接使用NDK编译Cocos2d-x项目。Eclipse集成NDK + Cygwin编译环境可以参考我的这篇博客:Cocos2d-x环境搭建
1、首先确认自己的ADT版本,NDK plugin的支持是在ADT 20及以后的版本。
2、安装Android Native Development Tools(该组件集成C/C++开发环境),既在安装ADT工具的时候勾选NDK组件,一路next后重启Eclipse使插件生效。
3、下载NDK工具http://developer.android.com/tools/sdk/ndk/index.html,我使用的是最新的android-ndk-r8e-windows-x86.zip,下载完后解到本地目录。
4、Eclipse -> Window -> Preferences -> Android -> NDK,设置NDK为刚刚解压缩的工具包路径。
5、NDK环境基本上已经搭建好,新建一个普通Android项目测试NDK支持。项目右键->Android Tools->Add Native Support...,如下图 :
然后输入.so库名字后点击Finish。
(注意:若项目已经是一个Jni项目,例如NDK example里面的HelloJni,这一步中.so库名字不用填)
在系统环境变量添加NDK_ROOT、NDK_MODULE_PATH。
6、现在已经可以Build我们的项目了,选择项目,Project->Build Project,编译我们的c/c++代码,此时项目结构如下,NDK plugin已经为我们添加好了include,已经为我们生成了相应的Android.mk以及 cpp文件。
7、这时,Android NDK环境已经OK了,我们可以在cpp文件中流畅地书写我们的c/c++代码。
首先你的cocos2d-x引擎根目录下的 cocos2dx、CocosDenshion 、extensions 、external以及cocos2d-x-2.2/cocos2dx/platform/platform/third_party/android/prebuilt中的所有文件夹复制到android-ndk-r8e目录下的sources中。
最后在项目里关联自己Class (关联之前先把默认生成 Class删除),步骤为右击项目->点Properties->点击C/C++ General --> Paths and Symbols --> Source Location,然后点击Link Folder,加入PARENT-1-PROJECT_LOC/Classes 。
最后应用修改即可。
这时再次右击项目->点Properties->点击C/C++ General->Code Analysis 把其中分析error的勾 全部去除就行了
问题一:Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml (这个是NDK工具的一个BUG,若build Target大于minSdkVersion,则会报这个错误,导致无法运行)
解决方法:
把android-ndk-r8e/build/core/add-application.mk第128行,
$(call __ndk_warning,WARNING: APP_PLATFORM $(APP_PLATFORM) is larger than android:minSdkVersion $(APP_MIN_PLATFORM_LEVEL) in $(APP_MANIFEST))
把__ndk_warning改为__ndk_info;然后重新build一次项目即可消除错误。