[转帖]cocos2d-x 3.0rc开发指南:Windows下Android环境搭建
原文请看:http://blog.csdn.net/linzhengqun/article/details/21663341
鲜红字体请注意:文中红色字体乃是本文博主阳光下的蒲公英添加。红色字体部分造成的问题,本博主一概不负任何责任。其他字体的责任由原文作者负责。(本文博主是不是特别无节操了呢。。。。O(∩_∩)O哈哈哈~)
安装工具
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_21CLASSPATH=.;%JAVA_HOME%\lib;Path增加%JAVA_HOME%\bin;本文假设你知道怎么设置环境变量,如果不知道,请使用搜索引擎查找相关资料,设置完后打开cmd,输入java -version如果出现下面提示,表明环境变量设置成功:C:\Users\arlin>java -versionjava 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>pythonPython 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32Type "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需要下面几个环境变量,用于后面的新建工程,构建工程等:
- 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-console/bin-> Looking for NDK_ROOT envrironment variable... NOT FOUNDPlease enter its path (or press Enter to skip): d:\adt-bundle-windows-x86\android-ndk-r8eADDED-- Added: NDK_ROOT = d:\adt-bundle-windows-x86\android-ndk-r8e-> Looking for ANDROID_SDK_ROOT envrironment variable... NOT FOUNDPlease enter its path (or press Enter to skip): D:\adt-bundle-windows-x86\sdkADDED-> Added: ANDROID_SDK_ROOT = D:\adt-bundle-windows-x86\sdk-> Looking for ANT_ROOT envrironment variable... NOT FOUNDPlease enter its path (or press Enter to skip): d:\adt-bundle-windows-x86\apache-ant-1.9.3\binADDED-> Added: ANT_ROOT = d:\adt-bundle-windows-x86\apache-ant-1.9.3\binSet up successfull:COCOS_CONSOLE_ROOT was added into registryNDK_ROOT was added into registryANDROID_SDK_ROOT was added into registryANT_ROOT was added into registryPlease restart the terminal or restart computer to make added system variables take effect命令最后提示我们重启终端或者重启系统,以让这些环境变量生效,一般我们关闭cmd和资源浏览器就行了,如果后面遇到环境变量找不到的错误,直接重启系统试试吧。要测试环境变量是否生效,重新打开cmd,输入下面命令查看,正常应该是这样:F:\cocos2dx\cocos2d-x-3.0rc0>set NDK_ROOTNDK_ROOT=d:\adt-bundle-windows-x86\android-ndk-r8eF:\cocos2dx\cocos2d-x-3.0rc0>set ANT_ROOTANT_ROOT=d:\adt-bundle-windows-x86\apache-ant-1.9.3\binF:\cocos2dx\cocos2d-x-3.0rc0>set ANDROID_SDK_ROOTANDROID_SDK_ROOT=D:\adt-bundle-windows-x86\sdkF:\cocos2dx\cocos2d-x-3.0rc0>set COCOS_CONSOLE_ROOTCOCOS_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.pynew mygame1 -p com.colin.mbgame -l cpp -d f:\cocos2dx\mbgameRuning 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,thescript just build dynamic library for project. Validandroid-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核机器就满负的跑了,如无意外,应该可以看到编译开始了,最后如果看到下面这几句,说明编译成功:
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下运行程序
- 到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
- (ps:非转帖内容:在此遭遇了问题,于是步骤是选择:General/Exiting Projects into Workspace 然后next。
- 第一步的目的就是导入libcocos2dx,请牢记,因此Root Directory的路径是 F:\cocos2dx\mbgame\mygame1\cocos2d\cocos\2d\platform\android )
- 此时列出libcocos2dx工程,点击finish把工程导进来。
- 第二步导入我们的工程:
- 在Root Directory输入F:\cocos2dx\mbgame\mygame1\proj.android。
- 此时会列出mygame1工程,点击finish把工程导进来。
- (ps:此时eclipse 导入了libcocos2dx,以及自己的项目mbgame.需要在mbgame的项目中引入库libcocos2dx.
- 步骤为:右键mbgame->properties->android 下的library。然后add上libcocos2dx即可)
- 最后连接手机,选择运行或调试就可以跑程序了。
- 在导入工程到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环境搭建的更多相关文章
- cocos2d-x 3.0rc开发指南:Windows下Android环境搭建
安装工具 1. 配置JDK JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 本人的系统是Win7 ...
- 【并行计算-CUDA开发】Windows下opencl环境配置
首先声明我这篇主要是根据下面网站的介绍, 加以修改和详细描述,一步一步在我自己的电脑上实现的, http://www.cmnsoft.com/wordpress/?tag=opencl&pag ...
- Windows下mock环境搭建-加速项目Api开发
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 公司进行技术部拆分,以项目制作为新的开发模式,前端+移动端+后端,于是加速Api开发变得很有必要,准 ...
- golang开发android环境搭建_window
golang开发android环境搭建介绍 一 安装依赖软件: git:版本管理 go: go开发环境(版本>=1.5),可直接下载window版的go安装包. android studio: ...
- paip.android环境搭建与开发事例
paip.android环境搭建与开发事例 好长时间没有玩AndROID了..以前常常做ANDROID的,今天决定在下载一个要做个时间设置器 作者Attilax , EMAIL:1466519819 ...
- 跟我一起,利用bitcms内容管理系统从0到1学习小程序开发:一、IIS下SSL环境搭建
缘起 1.从事互联网十来年了,一直想把自己的从事开发过程遇到的问题给写出来,分享给大家.可是可是这只是个种想法,想想之后就放下了,写出来的类文章是少之又少.古人说无志之人常立志,有志之人立长志.今天, ...
- arcgis api for flex 开发入门(一)环境搭建
http://www.cnblogs.com/wenjl520/archive/2009/06/02/1494514.html arcgis api for flex 开发入门(一)环境搭建arcgi ...
- win7下docker环境搭建nginx+php-fpm+easyswoole+lavarel+mysql开发环境
win7环境基础在上一篇win7下docker环境搭建nginx+php-fpm+easyswoole开发环境中已经详细叙述搭建完成 本篇文章将叙述如何在上述基础上搭建laravel开发环境,这个其实 ...
- Android开发使用控件入门--环境搭建
Android开发使用控件入门--环境搭建 软件名称(,梦,,想.CAD ,控件) 1. 环境搭建: 3 1.1. 安装Eclipse 3 1.2. 下载JDK 3 1.3. 下载Android S ...
随机推荐
- Hotaru's problem(hdu5371+Manacher)多校7
Hotaru's problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
- 教您使用java爬虫gecco抓取JD全部商品信息
gecco爬虫 如果对gecco还没有了解可以参看一下gecco的github首页.gecco爬虫十分的简单易用,JD全部商品信息的抓取9个类就能搞定. JD网站的分析 要抓取JD网站的全部商品信息, ...
- POJ 1163 The Triangle DP题解
寻找路径,动态规划法题解. 本题和Leetcode的triangle题目几乎相同一样的,本题要求的是找到最大路径和. 逆向思维.从底往上查找起就能够了. 由于从上往下能够扩展到非常多路径.而从下往上个 ...
- R语言中数据结构
R语言还是有点古老感觉,数据结构没有Python中那么好用.以下简单总结一下R语言中经常使用的几个数据结构. 向量: R中的向量能够理解为一维的数组,每一个元素的mode必须同样,能够用c(x:y)进 ...
- ab,qps,服务器性能压力
ab,qps,服务器性能压力 作者及来源: 陳聽溪 - 博客园 收藏到→_→: 摘要: ab,qps,服务器性能压力 http://www.makaidong.com/%E5%8D ...
- linux shutdown命令
shutdown [-t 秒] [-arkhncfF] 时间 [警告信息] 常用选项与参数: -t sec : -t 后面加秒数,亦即『过几秒后关机』的意思 -k : 不要真的关机,只是发送警告信息出 ...
- [SceneKit] 不会 Unity3D 的另一种选择
概述 SceneKit和SpriteKit的区别简单的来说就是二维和三维的区别 详细 代码下载:http://www.demodashi.com/demo/10664.html 上周一, 相信很多人和 ...
- 6种.net分布式缓存解决方式
6种.net分布式缓存解决方式 1. 使用内置ASP.NET Cache (System.Web.Caching) : https://msdn.microsoft.com/en-us/lib ...
- 深入PHP内核之opcode handler
1.opcode结构 在Zend/zend_compile.h文件下 struct _zend_op { opcode_handler_t handler; znode_op op1; znode_o ...
- PHP-二进制文件和文本文件的区别
一.文本文件和二进制文件的定义 计算机上所有文件存储在存储设备上都是二进制的, 所以文本文件和二进制文件的区别并不是物理上的, 而是逻辑上的!简单来说, 文本文件是基于字符编码的文件, 常见的编码有A ...