OS X下搭建Cocos2d-x 3.2的Android环境
下载Cocos2d-x
下载地址
http://cn.cocos2d-x.org/download/
当前最新版本是v3.2
解压到合适的位置,这里我解压到了/Applications/文件夹下,路径为
1 | /Applications/cocos2d-x-3.2 |
下载SDK
建议到Android官方地址下载ADT Bundle for Mac,这样就省去下载Eclipse和配置SDK的时间了。
下载地址http://developer.android.com/sdk/index.html
我下载的内容是adt-bundle-mac-x86_64-20140702.zip
下载地址是http://dl.google.com/android/adt/adt-bundle-mac-x86_64-20140702.zip
下载NDK
下载地址是http://developer.android.com/tools/sdk/ndk/index.html
在尝试中,我首先下载了ndk版本为r9c,但是出现错误。错误后面会说明
后来我尝试下载了最新版的ndk64,版本为r10,但也出现了错误。错误后面会说明
保险起见,最后我下载了ndk r9d,发现可以使用。
把NDK解压到合适的位置,这里我解压到了/Applications/adt/文件夹下,路径为:
1 | /Applications/adt/android-ndk-r9d |
下载JDK
首先检测JDK是否安装,打开命令行,输入
1 | java -version |
如果java命令可用,就说明已经下载好了java。我的提示信息如下:
1 | java version "1.8.0_05" |
这说明我已经安装了1.8.0_05版本的JDK
解压ADT-Bundle
把之前下载的ADT-bundle的zip文件解压到适当的位置,我解压到了/Applications文件夹。路径为
1 | /Applications/adt-bundle-mac-x86_64-20140702 |
打开adt-bundle下的eclipse文件夹,打开eclipse,尝试创立一个Hello World的Android程序。如果成功,说明Eclipse已经准备就绪。
配置NDK环境
1 | sudo vim /etc/profile |
在下面加上这一行
1 | export NDK_ROOT = "/Applications/adt/android-ndk-r9d" |
重启终端才能生效。
创建HelloWorld项目
进入Cocos2dx的文件夹,并调用cocos命令。
1 | cd /Applications/cocos2d-x-3.2/tools/cocos2d-console/bin/ |
这样就建立了一个项目
编译为Android项目文件
执行proj.android目录下的build_native.py命令
使用ndk版本为r9c的时候,出现如下错误:
1 | $ ./build_native.py |
当使用64位ndk,版本r10的时候,出现如下错误:
1 | $ ./build_native.py |
当使用ndk版本为r9d的时候,成功编译。
第一次编译时间会比较久,以后就会好一些。
事实上,并非r10不支持Cocos2d-x,而是因为我下载r10的时候下载了64位的版本。
这是因为【Android L】推出以后,Android设备要开始进入64位时代,所以推出了64位的ndk。但是Cocos2d-x暂时还没有支持64位的ndk,因此下载64位的ndk,就会出现错误。
ndk的32、64位和Mac操作系统或者Windows操作系统的32、64位又不是一回事,所以现在ndk的下载页面,有12个选项可以下载,分别是
| 32位NDK | 32位Windows |
| 32位NDK | 64位Windows |
| 32位NDK | 32位OS X |
| 32位NDK | 64位OS X |
| 32位NDK | 32位Linux |
| 32位NDK | 64位Linux |
| 64位NDK | 32位Windows |
| 64位NDK | 64位Windows |
| 64位NDK | 32位OS X |
| 64位NDK | 64位OS X |
| 64位NDK | 32位Linux |
| 64位NDK | 64位Linux |
这里,我重新下载了32位NDK 64位OS X的包,下载后解压,并设置/etc/profile,和r9d一样,也可以成功运行。
1 | export NDK_ROOT = "/Applications/adt/android-ndk-r10" |
注意这个android-ndk-r10和64位版本是重名的,因此我提前把64位的没法使用的ndk更名位android-ndk-r10-64了。
现在这个r10的ndk虽然不是64位的,但是至少也是最高的版本,自此,本教程所有的软件、内容、开发工具都是最新的版本了。
不过依然不建议使用r10的版本,尤其是看到这个问题之后:
http://cn.cocos2d-x.org/tutorial/show?id=1187
使用r10版本会出现如下错误:
1 | /Users/minggo/SourceCode/cocos2d-x/build/../cocos/./3d/CCBundleReader.cpp:94:23: error: |
该链接错误解决起来比较困难,已经超出了普通的Cocos2D-x的学习范畴,所以在Cocos2D-x官方给出解决方案以前,不要使用r10的NDK。
(PS:正式版中最新,2014年8月25日。)
导入项目到Eclipse
在Eclipse中,选择File->import,然后导入Android程序Existing Android Code Into Workspace
导入成功之后会有错误提示,这个时候还需要把一个lib文件夹导入到里面。
最新版和旧版路径不一样,在3.2版本中,需要把Path_to_your_demo/cocos2d/cocos/platform/android/java/src文件夹下的org文件夹导入进来,和已有的代码文件并列。
这个时候,点击运行,再选择设备,就可以成功地在Android手机上运行Cocos2dx的程序了。