原文来自于:http://blog.csdn.net/linzhengqun/article/details/21663341

安装工具


1. 配置JDK

本人的系统是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。

可以选择32位或64位版本,我选择的是32位版的,把它解压到一个目录,我这里是:d:\adt-bundle-windows-x86\,目录结构如下:
--<adt-bundle-windows-x86>
  --<eclipse>
  --<sdk>
  --SDK Manager.exe

3. 下载Android NDK

同样有32位和64位版可选,我选择的是32位版的,把它解压到adt同目录下,现在adt的目录结构如下:
--<adt-bundle-windows-x86>
  --<eclipse>
  --<sdk>
  --<android-ndk-r8e>
  --SDK Manager.exe

4. 下载ANT

ANT是为了自动构建Android程序用。
我选择的是: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在不同平台下必须用不同的脚本来创建和构建工程,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

下载完解压到一个地方,我这里:f:\cocos2dx\cocos2d-x-3.0rc0\

2. 设置环境变量

cc需要下面几个环境变量,用于后面的新建工程,构建工程等:

  • COCOS_CONSOLE_ROOT: cocos控制台路径,控制台用于新建,构建,发行工程。
  • 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
 

新建和构建工程


1. 新建工程

我们要用tools\cocos2d-console这个工具来新建工程,这个工具提供了下面几个功能:
  • new        创建一个新的工程
  • compile    编译当前工程,生成二进制文件,个人觉得写为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_NAME          工程名
 
可选参数:
  -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
                        工程所在的目录
  -t TEMPLATE_NAME, --template TEMPLATE_NAME
                        要创建的工程模板名
 
lua/js 工程参数:
  --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'
 
这表明我们已经成功创建一个工程,到f:\cocos2dx\mbgame\看看,工程目录结构如下:
--<mygame1>
  --<Classes>
  --<cocos2d>
  --<proj.android>
  --<proj.ios_mac>
  --<proj.linux>
  --<proj.win32>
  --<Resources>
  --.cocos-project.json
  --CMakeLists.txt
 
可以看到各种平台下的工程都创建出来了,同时它把cocos2d整个框架都拷贝过来了,这种好坏就见仁见智了,

2. 构建Android工程

同时是用到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]
 
把当前工程编译为二进制
 
可选参数:
  -h, --help            显示帮助信息
  -s SRC_DIR, --src SRC_DIR
                        工程根目录,比如上面应该是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意思就是说我们要编译当前目录下的Android工程,同时可以有4个编译任务,所以我的4核机器就满负的跑了,如无意外,应该可以看到编译开始了,最后如果看到下面这几句,说明编译成功:

后面当文件变更之后需要项目目录下的proj.android\jni\Android.mk文件中添加自己新建的类进来,不然编译会找不到文件,切记,例如:

LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp \
../../Classes/WelcomeLayer.cpp \
../../Classes/BasicLayer.cpp

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吗,现在我们就来把工程导入到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
  • 接下来我们来导入工程,选择file/import,打开导入对话框:

    • 选择Android/Existing Android Code Into Workspace,然后Next
    • 第一步要先把libcocos2dx导进来:
      • Root Directory输入F:\cocos2dx\mbgame\mygame1\cocos2d\cocos\2d\platform\android\java
      • 此时列出libcocos2dx工程,点击finish把工程导进来。
    • 第二步导入我们的工程:
      • Root Directory输入F:\cocos2dx\mbgame\mygame1\proj.android
      • 此时会列出mygame1工程,点击finish把工程导进来。
    • 最后连接手机,选择运行或调试就可以跑程序了。
  • 在导入工程到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.0环境搭建的更多相关文章

  1. ubantu16.04+mxnet +opencv+cuda8.0 环境搭建

    ubantu16.04+mxnet +opencv+cuda8.0 环境搭建 建议:环境搭建完成之后,不要更新系统(内核) 转载请注明出处: 微微苏荷 一 我的安装环境 系统:ubuntu16.04 ...

  2. 菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven)

    菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven) 2012-02-04 13:11 by 虫师, 11419 阅读, 5 评论, 收藏, 编辑 之前我就讲过一种方试来搭 ...

  3. XNA 4.0 环境搭建和 Hello World,Windows Phone 游戏开发

    XNA 4.0 环境搭建和 Hello World,Windows Phone 游戏开发 使用 Scene 类在 XNA 中创建不同的场景(八) 摘要: 平方已经开发了一些 Windows Phone ...

  4. (win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功

    (win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功 1.下载opencv 官网http://opencv.org/下载windows版Op ...

  5. [转]OPENCV3.3+CUDA9.0 环境搭建若干错误总结

    编译OpenCV设计启用OpenGL三维可视化支持和启用GPU CUDA并行加速处理的基本知识: 1.从2.4.2版本开始,OpenCV在可视化窗口中支持OpenGL,这就意味着在OpenCV中可以轻 ...

  6. vs2012+qt5.2.0环境搭建/vs2013 + qt5.3.2 环境搭建

    分类: Windows Qt2014-01-17 00:50 15434人阅读 评论(18) 收藏 举报 此文章已作废,请参考我的新文章: vs2013 + qt5.3.2 环境搭建 ( http:/ ...

  7. heritrix 3.2.0 -- 环境搭建

    heritrix作为一个比较经典的开源爬虫,写这篇文章目的是因为,3.X之后的heritrix的介绍以及配置的文章比较少了. heritrix 3.x 以后使用maven 2配置jar包引用,但是总是 ...

  8. 云服务器下ASP.NET Core 1.0环境搭建(包含mono与coreclr)

    最近.net core如火如荼,国内这方面环境搭建方面的文档也非常多,但是不少已经是过时的,就算按照那个流程走下去也避免不了一些地方早就不一样了.所以下面我将从头到尾的教大家搭建一次环境,并且成功运行 ...

  9. Qt4.8.6开发WinCE 5.0环境搭建

    Qt-Wince5.0开发环境介绍 1.Windows7SP1 64 2.vs2008,以及sp1补丁 3.编译qt-everywhere-opensource-src-4.8.6.zip 4.qt- ...

  10. dm368 ipnc3.0环境搭建脚本

    前言 为了方便其他人搭建dm368 ipnc3.0环境,我写了个脚本,执行脚本就可以自动搭建好环境了,绝对的傻瓜操作了,不过有一个地方让我很郁闷,那就是在用sed替换掉某段内容的时候(143行--15 ...

随机推荐

  1. js一些平时会用到的

    如何屏蔽页面js错误    <script language="javascript">    function killErrors()    {        re ...

  2. Javascript Utils.js

    \ var Utils ={//字符串格式化StringFormat: function () {if (arguments.length == 0)return null;var str = arg ...

  3. poco网络库分析,教你如何学习使用开源库

    Poco::Net库中有 FTPClient HTML HTTP HTTPClient HTTPServer ICMP Logging Mail Messages NetCore NTP OAuth ...

  4. C++中引用的本质是什么?

    一般的教材上讲到引用时,都是说“引用是对象的一个别名”.我认为这种定义是不清晰的,不利于初学者理解引用.至少我自己曾经被这个定义困扰了一段时间.到底什么是“别名”? 实际上,引用的实质是位于xxxxx ...

  5. UVA 11600-Masud Rana(状压,概率dp)

    题意: 有n个节点的图,开始有一些边存在,现在每天任意选择两点连一条边(可能已经连过),求使整个图联通的期望天数. 分析: 由于开始图可以看做几个连通分量,想到了以前做的一个题,一个点代表一个集合(这 ...

  6. Intellij IDEA Maven创建web项目

    Intellij IDEA在创建java webapp的时候没有那么人性化,新手使用会处处碰壁.特此记录! 一.File--New--project 二.Next--输入GroupId.Artifac ...

  7. RestTemplate中文乱码问题

    使用RestTemplate传输带有图片的表单时,需要对表单中的中文参数进行URL编码, eg :URLDecoder.decode(name);               // 使用默认的解码   ...

  8. Java中快如闪电的线程间通讯

    这个故事源自一个很简单的想法:创建一个对开发人员友好的.简单轻量的线程间通讯框架,完全不用锁.同步器.信号量.等待和通知,在Java里开发一个轻量.无锁的线程内通讯框架:并且也没有队列.消息.事件或任 ...

  9. jxse2.6连接外网rdv一直连接不上,而相同的代码用jxse2.7却能连上

    一直以为2.6中的bug会少一些,所以用2.6做开发:之前测试一直是在同一台 机器上,所以没啥问题:最近在外网设置了一个rdv,却一直连不上,困扰了n久,尝试各种方式都不起作用.最后想起以前开发的代码 ...

  10. linux下编译lua

    curl -R -O http://www.lua.org/ftp/lua-5.2.3.tar.gz 编译代码时,遇到如下错误 /usr/lib/libreadline.so: undefined r ...