cocos2d-x 3.0rc开发指南(Windows下Android环境搭建)

千磨万击还坚劲,任尔东西南北风。这篇文章主要讲述cocos2d-x 3.0rc开发指南:Windows下Android环境搭建相关的知识,希望能为你提供帮助。
安装工具1. 配置JDK

  • JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
本人的系统是Win7 64位版,但安装的是JDK7。Windows X86版。 如果安装文件夹在:C:\Program Files (x86)\Java\jdk1.7.0_21;当然也能够是其它地方
  • 环境变量设置:
JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_21 CLASSPATH=.; %JAVA_HOME%\lib; Path添加%JAVA_HOME%\bin;
本文如果你知道怎么环境变量设置,如果不知道,请使用搜索引擎查找相关资料。设置完后打开cmd,输入java -version 假设出现以下提示。表明设置环境变量成功:C:\Users\arlin> java -version java version "1.7.0_21" Java(TM) SE Runtime Environment (build 1.7.0_21-b11) Java HotSpot(TM) Client VM (build 23.21-b01, mixed mode, sharing)

2. 下载android SDK
Google为Android开发人员提供了ADT(Android Developer Tools)。里面包括了SDK和Eclipse。
下载地址是:http://developer.android.com/sdk/index.html 能够选择32位或64位版本号。我选择的是32位版的,把它解压到一个文件夹,我这里是:d:\adt-bundle-windows-x86\。文件夹结构例如以下:--< adt-bundle-windows-x86>   --< eclipse>   --< sdk>   --SDK Manager.exe
3. 下载Android NDK
下载地址是:http://developer.android.com/tools/sdk/ndk/index.html 相同有32位和64位版可选,我选择的是32位版的,把它解压到adt同文件夹下。如今adt的文件夹结构例如以下:--< adt-bundle-windows-x86>   --< eclipse>   --< sdk>   --< android-ndk-r8e>   --SDK Manager.exe
4. 下载ANT
ANT是为了自己主动构建Android程序用。

下载地址是:http://ant.apache.org/bindownload.cgi 我选择的是:apache-ant-1.9.3-bin.zip,相同解压到adt文件夹下,如今adt的文件夹结构例如以下:--< adt-bundle-windows-x86>   --< eclipse>   --< sdk>   --< android-ndk-r8e>   --< apache-ant-1.9.3>   --SDK Manager.exe
5. 下载python
  • 原来cocos2dx在不同平台下必须用不同的脚本来创建和构建project。3.0以后都统一用python了,所以Windows下须要安装python环境:
下载地址:https://www.python.org/ftp/python/2.7.3/python-2.7.3.msi
原来下载了最新的版本号。使用setup.py的时候发现有语法错误。所以最好使用2.7.3版本号,亲測过没有问题
  • 配置环境变量:最新版本号能够自己主动加进path环境变量。但2.7.3不行。所以我们仅仅能自己设置一下,如果我的Python安装在:d:\Python27\
把这个路径加到path环境变量中,当我们在cmd下输入python,出现以下字样。就说明设置环境变量正确了:C:\Users\arlin> python Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. > > >  

cocos2d-x下载与配置1. 下载cocos2d-x
眼下最新版本号是3.0RC,下载地址是:http://cocostudio.download.appget.cn/Cocos2D-X/3.0RC0/cocos2d-x-3.0rc0.zip 下载完解压到一个地方。我这里:f:\cocos2dx\cocos2d-x-3.0rc0\
2. 环境变量设置
cc须要以下几个环境变量,用于后面的新建project,构建project等:
  • COCOS_CONSOLE_ROOT: cocos控制台路径。控制台用于新建,构建,发行project。
  • NDK_ROOT: NDK根文件夹
  • ANDROID_SDK_ROOT: SDK根文件夹
  • ANT_ROOT: ANT根文件夹
这几个环境变量是通过cocos2d-x根文件夹下的setup.py来配置的,我们启动cmd。执行setup.py: F:\cocos2dx\cocos2d-x-3.0rc0> setup.py
此时脚本须要我们提供NDK。SDK,ANT的路径,我们依据之前放的路径输入就是了,整个命令步骤例如以下:Setting up cocos2d-x...
-> Adding COCOS2D_CONSOLE_ROOT environment variable... OK   -> Added: COCOS_CONSOLE_ROOT = F:\cocos2dx\cocos2d-x-3.0rc0\tools/cocos2d-cons ole/bin
-> Looking for NDK_ROOT envrironment variable... NOT FOUND         Please enter its path (or press Enter to skip):  d:\adt-bundle-windows-x8 6\android-ndk-r8e ADDED   -- Added: NDK_ROOT = d:\adt-bundle-windows-x86\android-ndk-r8e
-> Looking for ANDROID_SDK_ROOT envrironment variable... NOT FOUND         Please enter its path (or press Enter to skip):  D:\adt-bundle-windows-x8 6\sdk ADDED   -> Added: ANDROID_SDK_ROOT = D:\adt-bundle-windows-x86\sdk
-> Looking for ANT_ROOT envrironment variable... NOT FOUND         Please enter its path (or press Enter to skip): d:\adt-bundle-windows-x8 6\apache-ant-1.9.3\bin ADDED   -> Added: ANT_ROOT =  d:\adt-bundle-windows-x86\apache-ant-1.9.3\bin
Set up successfull:         COCOS_CONSOLE_ROOT was added into registry         NDK_ROOT was added into registry         ANDROID_SDK_ROOT was added into registry         ANT_ROOT was added into registry
Please restart the terminal or restart computer to make added system variables t ake effect
命令最后提示我们重新启动终端或者重新启动系统,以让这些环境变量生效。一般我们关闭cmd和资源浏览器即可了,假设后面遇到环境变量找不到的错误,直接重新启动系统试试吧。 要測试环境变量是否生效,又一次打开cmd。输入以下命令查看。正常应该是这样:F:\cocos2dx\cocos2d-x-3.0rc0> set NDK_ROOT NDK_ROOT=d:\adt-bundle-windows-x86\android-ndk-r8e
F:\cocos2dx\cocos2d-x-3.0rc0> set ANT_ROOT ANT_ROOT=d:\adt-bundle-windows-x86\apache-ant-1.9.3\bin
F:\cocos2dx\cocos2d-x-3.0rc0> set ANDROID_SDK_ROOT ANDROID_SDK_ROOT=D:\adt-bundle-windows-x86\sdk
F:\cocos2dx\cocos2d-x-3.0rc0> set COCOS_CONSOLE_ROOT COCOS_CONSOLE_ROOT=F:\cocos2dx\cocos2d-x-3.0rc0\tools/cocos2d-console/bin

新建和构建project1. 新建project
我们要用tools\cocos2d-console这个工具来新建project,这个工具提供了以下几个功能:
  • new         创建一个新的project
  • compile     编译当前project,生成二进制文件,个人认为写为build更贴切一些。
  • deploy     公布程序到一个平台
  • run         编译和公布,和执行程序
我们如今仅仅用到new。让我们看看new提供了哪些參数。打到cmd,输入: cocos new --help
得到以下帮助:usage: cocos new [-h] [-p PACKAGE_NAME] -l {cpp,lua,js} [-d DIRECTORY]                   [-t TEMPLATE_NAME] [--no-native]                   [PROJECT_NAME]
创建一个新project
必要參数:   PROJECT_NAME           project名
可选參数:   -h, --help             显示帮助信息   -p PACKAGE_NAME, --package PACKAGE_NAME                         设置包名。如com.colin.mbgame   -l {cpp,lua,js}, --language {cpp,lua,js}                         使用的主要语言,能够是:[cpp | lua | js]   -d DIRECTORY, --directory DIRECTORY                         project所在的文件夹   -t TEMPLATE_NAME, --template TEMPLATE_NAME                         要创建的project模板名
lua/js project參数:   --no-native           No native support.

如今我们在cmd中输入:
F:\cocos2dx> cocos new mygame1 -p com.colin.mbgame -l cpp -d f:\cocos2dx\mbgame
得到以下输出: F:\cocos2dx> python F:\cocos2dx\cocos2d-x-3.0rc0\tools\cocos2d-console\bin\/cocos.py  new mygame1 -p com.colin.mbgame -l cpp -d f:\cocos2dx\mbgame Runing command: new > Copy template into f:\cocos2dx\mbgame\mygame1 > Copying cocos2d-x files... > Rename project name from ‘HelloCpp‘ to ‘mygame1‘ > Replace the project name from ‘HelloCpp‘ to ‘mygame1‘ > Replace the project package name from ‘org.cocos2dx.hellocpp‘ to ‘com.colin.mbgame‘

这表明我们已经成功创建一个project,到f:\cocos2dx\mbgame\看看,project文件夹结构例如以下: --< mygame1>   --< Classes>   --< cocos2d>   --< proj.android>   --< proj.ios_mac>   --< proj.linux>   --< proj.win32>   --< Resources>   --.cocos-project.json   --CMakeLists.txt
能够看到各种平台下的project都创建出来了。同一时候它把cocos2d整个框架都拷贝过来了,这样的好坏就见仁见智了。
2. 构建Androidproject
同一时候是用到cocos2d-console。这里要用的是compile这个命令,在cmd输入以下查看帮助: f:\cocos2dx\mbgame\mygame1> cocos compile --help
usage: cocos compile [-h] [-s SRC_DIR] [-q] [-p PLATFORM] [-m MODE] [-j JOBS]                       [--ap ANDROID_PLATFORM] [--source-map]
把当前project编译为二进制
可选參数:   -h, --help             显示帮助信息   -s SRC_DIR, --src SRC_DIR                         project根文件夹,比方上面应该是f:\cocos2dx\mbgame\mygame1                         假设不设,就为当前文件夹(cmd定位到的那个文件夹)   -q, --quiet           less output   -p PLATFORM, --platform PLATFORM                         选择一个平台 android|ios|mac|web|win32|linux   -m MODE, --mode MODE   编译模式 debug|release, 默觉得debug.   -j JOBS, --jobs JOBS   半行编译,假设你有4核。能够设为4。
Android Options:   --ap ANDROID_PLATFORM                         指定SDK版本号?没试过。不敢枉下定论,保留英文:                         parameter for android-update.Without the parameter,the                         script just build dynamic library for project. Valid                         android-platform are:[10|11|12|13|14|15|16|17|18|19]
Web Options:   --source-map           Enable source-map
如今我们在cmd输入:
F:\cocos2dx\mbgame\mygame1> cocos compile -p android -j 4

意思就是说我们要编译当前文件夹下的Androidproject,同一时候能够有4个编译任务,所以我的4核机器就满负的跑了,如无意外,应该能够看到编译開始了,最后假设看到以下这几句,说明编译成功:
BUILD SUCCESSFUL
Total time: 7 seconds
Move apk to F:\cocos2dx\mbgame\mygame1\bin\debug\android
build succeeded.

我们到f:\cocos2dx\mbgame\mygame1\proj.android\bin\,能够看到mygame1-debug.apk,说明构建完毕。
我把它安装到手机上试跑,发现好像启动速度是快了非常多,不知是不是心理作用。

在Eclipse下执行程序还记得我们下的adt里面有eclipse吗,如今我们就来把project导入到eclipse跑跑看
  • d:\adt-bundle-windows-x86\eclipse打到eclipse.exe
第一次会提示设置工作区,你能够设置工作区放在哪里。我这里为了演示就默认了。
  • 接下来我们要看看SDK和NDK的路径是否正确:
    • 选择Windwos/Preferences菜单项,打开选项对话框。
    • 选择Android结点,看看SDK Location是否正确,我这里为F:\software\adt-bundle-windows-x86-20131030\sdk,说明是正确的。假设没有值,就手动把SDK的根文件夹设进去。
    • 接着选择Android/NDK结点,在NDK Location输入d:\adt-bundle-windows-x86\android-ndk-r8e
  • 接下来我们来导入project,选择file/import。打开导入对话框:
    • 选择Android/Existing Android Code Into Workspace,然后Next

    • 第一步要先把libcocos2dx导进来:
      • Root Directory输入F:\cocos2dx\mbgame\mygame1\cocos2d\cocos\2d\platform\android\java
      • 此时列出libcocos2dxproject,点击finish把project导进来。
    • 第二步导入我们的project:
      • Root Directory输入F:\cocos2dx\mbgame\mygame1\proj.android

      • 此时会列出mygame1project,点击finish把project导进来。
    • 最后连接手机,选择执行或调试就能够跑程序了。
  • 在导入project到Eclipse时遇到几个坑,在这里记下来,免得后面的人继续踩这些坑:
    • 没有导libcocos2dx。仅仅导mygame1时不会有编译错误,但跑起来后会ClassNotFound异常,说找不到org/cocos2dx/lib/Cocos2dxHelper类,这个问题搞了我好久,后来在论坛看到贴子才明确,希望兴许官方有具体的文档。

    • 由于adt仅仅包括了android4.4(api-19)的版本号,所以默认使用的是这个版本号,我自己拷了几个更低的版本号。然后把Build target设为android2.3(api-9),此时执行程序会提示以下错误:
Unable to execute dex: java.nio.BufferOverflowException
后来在网上查了一下,发现是Android SDK Build tools的BUG,把它升级到19.0.3后就好了:打开SDK Manager。找到19.0.3的Android SDK Build Tools,安装之。
【cocos2d-x 3.0rc开发指南(Windows下Android环境搭建)】






































    推荐阅读