[转载]让人死去活来的cocos2d-x安卓开发环境搭建(windows+eclipse+ndk 不用cygwin) – 夜阑卧听风吹雨 – 博客园.
安卓环境搭建
【一 写在前面】
环境搭建的顺序是这样
1.JDK&JRE 安装JDK会顺带安装JRE的,这一步是为了可以编写和允许普通的JAVA程序
2.Eclipse JAVA 的 IDE,这一步是为了方便地开发JAVA程序
3.CDT 是Eclipse的一个插件,这一步是为了可以引入C++
4.ADT 是Eclipse的一个插件,这一步是为了管理安卓开发库
5.ADK 上一步是工具,这一步就是开发库了,到了这一步你可以编写普通的安卓程序
6.NDK 单有CDT还不行,它只能编辑,不能编译,这一步是为了可以编译C++程序,然后在安卓中使用
这里不需要使用cygwin这个麻烦的东西,我们使用新版本的ndk来编译C++
【二 JDK的安装】
JDK的最新版本是1.7,【重要】这里需要下载使用 1.6的JDK,JDK自动包含JRE,使用1.7的JDKcocos的代码会有”暂时性编译错误”问题
下载安装都是一路Next,下面的内容是安装1.7之后降1.6的方法,直接安装1.6的可以飘过
下载地址:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html
根据自己的操作系统选择,这里我用的是Java SE Development Kit 6u30
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/1C22DA15B858457C986B6F2466363B7B/clipboard.png)
如果你像我一样不幸,装上了1.7,可以用下面的方法来恢复降到1.6
1.打开windows的Preferences,把Compiler compliance level 设置到1.6
然后会显示让你配置JRE
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/BB09FA95EADA4B26897AE3BC13E7F7DD/clipboard.png)
在配置jre中添加jre的目录,然后选定
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/012D11C1C05D4E61B7A25CC8728478F0/clipboard.png)
这里,我们在Eclipse里面设置好了JRE6,以及编译使用的JDK,但还不可以
接下来要设置一下你的项目,打开Project Properties,Add Library 然后Next,接下来会要你选择JRE的路径
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/2CFBD18E14814C4DB1E526CB80CEF277/clipboard.png)
这里我们直接选择刚刚在windows Preferences设置好的JRE6,然后Finish即可
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/1829B548B07F4A7B86041CC746E67C77/clipboard.png)
此时你会发现更多的红叉叉,所有文件都出现红叉叉了,让我们把他们消除掉,这次很简单,刚刚重置JRE的时候,吧安卓也重置掉了
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/A24B3E06873B4248A7E2CD0F02103D51/clipboard.png)
把安卓ADK勾上就可以了
【三 安装Eclipse和CDT】
这里我直接用这一个,带CDT插件,已经有Eclipse的同学可以去下载一个CDT
Eclipse解压就可以直接使用了,这里不墨迹
Eclipse C++版本下载地址 http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers-includes-incubating-components/indigosr2
【四 安装ADT】
两种安装方法,一种在线安装,一种下载安装,网速问题,我倾向于下载安装。
注意,请下载1.7及以上版本的ADT,这里使用1.8的版本
在Help里面,选择Install New Software…
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/C06CAF66CA8A4070BD988378421D94A5/clipboard.png)
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/A1747052D93C4D78B5C85091C317EFF7/clipboard.png)
(不行的话,把https改为http试试)
如果是下载安装,先把ADT下载到本地,然后按Archive选择ADT的路径,点 ok,勾上Developer Tools开始安装
ADT 1.8的地址:http://dl.google.com/Android/ADT-18.0.0.zip
PS。这个安装需要一段时间…..不要以为它死机了,挂了,如果你的机器或者网络不给力,让你感觉到不耐烦
请不要强制关闭它….否则,你可能要看接下来的错误排除
安装完毕之后重启Eclipse,然后会提示你安装ADK
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/9CC3CF15258049DFB1B48858724625BD/clipboard.png)
如果你非常不幸安装了1.6以及以前版本的ADT,或者强制中断了它的安装….那么你需要把它卸掉
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/E85892C2B6054CE4913D33B0388CF63B/clipboard.png)
它将无法创建安卓项目…,而卸载,也是一个麻烦的事情
首先,需要把这个插件删除,在Help的About找到对应的ADT,然后删除
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/01D4626A104347B383F4D697C06F4EC8/clipboard.png)
接下来从软件更新列表中,删除我们的ADT
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/25F1897D66274A5E8B350B516CF7651A/clipboard.png)
【五 安装ADK】
安装完ADT之后,重启Eclipse会提示你安装ADK,你可以指定路径,或者下载安装
可以在这个地址下载ADK http://developer.android.com/sdk/index.html
如果是下载的话,建议下载2.1,他的兼容性比较好,本地的话,指定ADK解压后的路径即可
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/1CE6AB5DE4084853827164AE92DA577D/clipboard.png)
【六 安装NDK】
到这里为止,我们已经可以使用Eclipse来编写安卓程序了,但我们的目的是用C++编写cocos,要达到这个目的,还需要最后一步——NDK
使用NDK有两个目的,第一个是将我们的C++代码编译成链接库,这里的链接库是Linux下的so或者a文件,不同于windows的dll
第二个目的是Jni,Java需要通过Jni来调用我们的C++代码
下载地址为:http://dl.google.com/android/ndk/android-ndk-r7-windows.zip
下载完毕之后解压,这里给出最简单的步骤,在编译的过程中会碰到各种问题,这里也将一一解答
首先我们要创建一个Android项目
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/DB1A40440FE14D75BABFFA82F8C06F8B/clipboard.png)
使用最新版本的Cocos2d-x,我们用他的HelloWorld来做试验
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/62005012E12E4756A104ED665350D1E4/clipboard.png)
项目打开之后,,,,这里发现一个错误,没有setEGLContextClientVersion这个方法,这里,暂时把它注释掉吧
看意思应该是设置OpenGL ES的版本….反正默认的应该可以
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/ECFE35C399BE4CD3A119F0F153A0DC82/clipboard.png)
然后看到控制台输出一句话
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/A9A384CA292C4CF19C14BE2776608995/clipboard.png)
这里在Application.mk加上APP_PLATFORM :=android-4就可以了
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/65E75C20BE8F4D309197BB2C5971AE7F/clipboard.png)
接下来我们要把NDK加进来,让NDK来编译我们的C++
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/A4D4B5A9DC954806AD8B4F7FCE30673C/clipboard.png)
指定ndk-build.cmd来编译我们的项目,下面的工作路径将作为参数传入给ndk-build.cmd,
我们选择项目的路径,它会自动编译jni子目录下的Android.mk
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/4AB55884B8D44C0BB4CC5914024FC516/clipboard.png)
这时候如果是cocos2d-1.0.1-x-0.13.0-beta以及之前的版本,是可以进行编译的,但如果是之后的版本,有可能出现如下错误
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/153E0F525D3645DEBA0AAFABB56CB9DC/clipboard.png)
Android.mk引用了一个模块,cocos2dx模块,而NDK没有找到它,所以报了这个错,
之前的版本是直接包含cocos2dx模块的Android.mk的,所以不会报错
而这里使用了import,我们也可以使用之前版本的方法来包含它,但貌似import比之前的方法要更好一些
错误信息提示我们,可以通过设置NDK_MODULE_PATH环境变量,这里很有可能设置错误
一般,一个Android.mk包含一个或多个模块,当你要import cocos2dx模块时,
他会在这个路径下% NDK_MODULE_PATH\cocos2dx寻找Android.mk文件
所以我们编辑我们的Builder
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/31630760315248AAB53BCDB841244E41/clipboard.png)
添加NDK_MODULE_PATH变量,注意要写两个路径,用分号分开
D:\SDK\cocos2d-2.0-rc0a-x-2.0;D:\SDK\cocos2d-2.0-rc0a-x-2.0\cocos2dx\platform\third_party\android\prebuilt
因为cocos2dx还import了其他几个module,第二个路径制定了第三方的module,设置完就可以进行编译了
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/8B947294DC7D4FB8960ECB2F3AE0D582/clipboard.png)
我用的是最新的2.0,有些头文件没找到,一些类型也有问题….密密麻麻地近百个错误。。。
我们试着用低一点的版本吧
接下来又出现了一个找不到静态库的问题
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/921E9A788ABC49FEA88ADDA921B94159/clipboard.png)
把<NDK>/sources/cxx-stl/gnu-libstdc++/libs/armeabi/目录下的libgnustl_static.a
拷贝到obj/local/armeabi/libgnustl_static.a目录下,解决
![](file:///C:/Users/Administrator/AppData/Local/youdao/ynote/images/EF4E25CFD6E145C08A8A2AE22EB1A38D/clipboard.png)
最后生成的apk放在bin目录下
PS.资源文件需要放在assets下,ADT会将它打包到apk中