cocos2d-x升级到3.0后变化不小,除了API的变化(主要是函数和类名称变化,以及使用了C++11的不少特性。function/bind, lamda, std::thread…),创建和编译project也做了一些简化调整。本文主要讨论一下cocos2d-x3.0 在android平台开发的环境设置及project创建编译流程。

1.   初始设置

除了2.x所须要的python,jdk, android sdk和ndk之外,还须要部署apache-ant。

1)      在path中设置好java环境变量:

JAVA_HOME=C:\jdk_xx.xx.xx

path加上%JAVA_HOME%\bin;

CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

2)      安装python 2.x版本号。

3)      部署好android sdk, ndk, ant之后,运行...\cocos2d-x-3.0\ setup.py。

提示输入ndk。sdk和ant文件夹。这里要注意,androidsdk设置为 …\adt-bundle-windows-x86\sdk,ndk文件夹设置为…\android-ndk,而ant文件夹要设置为…\apache-ant\bin,和前两者设置为根文件夹不同,要设置到bin文件夹。否则不生效。部署apk的时候会提示找不到ant。

4)      三个文件夹设置完毕后自己主动关闭setup.py脚本。开发环境设置完毕。

2.   创建project

2.x

cocos2d-x\tools\project-creator文件夹下,命令行运行python create_project.py –project ABC –package com.xyz.abc –language cpp创建project

创建好的project文件夹在cocos2d-x\projects,不能拷贝到其它路径,否则会有project依赖问题。

 

3.0

cmd命令行进入自己选择的project路径,运行cocos new MyGame -p com.your_company.mygame -l cpp

等待project创建完毕。

3.0版本号会把依赖的cocos2dx源文件拷贝到自己创建的project文件夹,在cocos2d文件夹下。所以不存在拷贝project引起的依赖问题。

3.   编译project

创建完毕后,cd进入project文件夹。运行cocos compile –p android –j 4编译project,cocos run –p android –j 4编译+部署apk+运行。

-p參数指定平台

-j參数指定使用多少个线程运行编译,官方的说法是能够加快编译速度。(可选项)

默认是debug编译,-m release能够指定编译为公布版。注意。release必须小写。写成Release无效。

很多其它參数參见官方文档:

https://github.com/cocos2d/cocos2d-console/issues/27

4.   部署apk

cocos deploy –p android部署编译好的apk。cocos run –p android能够编译好直接部署。

5.   清理project

官方文档的cocos clean命令运行后提示Error:argument 'clean' not found。

看一下cocos2dx的命令脚本,文件夹在cocos2d-x-3.0\tools\cocos2d-console。

查看bin文件夹下的cocos2d.ini:

#

#cocos2d command line tool configuration file

#

[plugins]

project_new.CCPluginNew

project_compile.CCPluginCompile

project_run.CCPluginRun

project_deploy.CCPluginDeploy

plugin_jscompile.CCPluginJSCompile

#plugin_version.CCPluginVersion

#plugin_install.CCPluginInstall

#plugin_update.CCPluginUpdate

#plugin_clean.CCPluginClean

#plugin_dist.CCPluginDist

# To adda new plugin add it's classname here

能够看到clean命令被凝视掉了,仅仅有new,compile, run, deploy可用,原因不明,那就不用命令清理project了,改用手动清理吧。非常easy,须要清理时把porj.android文件夹bin, obj, libs, assets, gen文件夹都删除就好了。能够写个脚本完毕。

6.   开发环境

cocos2d-x2.x版本号创建的project能够直接使用vs2010编译。

在windows上开发调试好后移植到android平台就能够了。升级到3.0版本号后,因为使用了c++11,最低支持版本号为vs2012。

vs2012要求win7以上os,没法在xp系统上调试程序了。

既然如此,就不win32project进行开发了,直接编译android平台。也省去了移植这一过程。

命令行编译部署androidproject前面都介绍过了,以下须要的就是选择一个IDE方便开发。这里推荐codeblocks。创建project过程例如以下:

1)      在游戏project根文件夹创建一个codeblocks空project。

2)      加入Classes和cocos2d文件夹全部文件。

3)      预编译宏定义加入ANDROID 指定平台。

设置完毕。就能够进行开发了。须要编译时命令行运行cocos compile –p android –j 4就能够了。

依据命令行提示的错误代码行在codeblockside中查找相应源文件的相应行来定位bug。

加入新文件时可不要仅仅在codeblocks里加入。还要在proj.android/jni/Android.mk中加入LOCAL_SRC_FILES。

另外,假设须要使用cocos2dx的extensions模块,也须要改动Android.mk文件。

改动例如以下:

LOCAL_C_INCLUDES:= $(LOCAL_PATH)/../../Classes \

                                               $(LOCAL_PATH)/../../cocos2d\extensions

LOCAL_WHOLE_STATIC_LIBRARIES+= cocos_extension_static

$(call import-module,extensions)

加入其它模块与之相似。

7.   Log输出

cocos2d-x3.0使用新的打印函数log(2.x版本号是CCLog),我们须要使用adb和logcat工具查看log输出(要在命令行里使用adb,记得配置adt-bundle-windows-x86\sdk\platform-tools到path)。

命令行运行adb logcat。假设android设备连接USB或者开着模拟器。就能够看到输出的log信息了,但信息太多。程序里打印的重要信息非常快会被淹没。必须设置过滤条件。

能够看到cocos2d-x的log信息格式为 D/cocos2d-xdebug info(12358): xxxx。

D表示debug。表示打印优先级。优先级是以下的字符,顺序是从低到高:

V — 明细 (最低优先级)

D — 调试

I — 信息

W — 警告

E — 错误

F — 严重错误

S — 无记载 (最高优先级,没有什么会被记载)

logcat的使用详见http://blog.csdn.net/xyz_lmn/article/details/7004710

运行adb logcat cocos2d-xdebug info:D *:S应该就能够过滤掉其它信息了,但运行后发现什么信息都没有了,这是为什么?

另外创建了个androidproject。调试后发现tag里有空格adb就无法正确过滤,问题清楚了。以下须要改动一下cocos2dx的log函数。

打开cocos2d\cocos\base\CCConsole.cpp,找到_log函数(log和CCLog都调用这个),里面

#ifCC_TARGET_PLATFORM == CC_PLATFORM_ANDROID

__android_log_print(ANDROID_LOG_DEBUG, "cocos2d-x debug info",  "%s", buf);

改动cocos2d-x debug info为cocos2d-x_debug_info。

又一次编译project,命令行运行adblogcat cocos2d-x_debug_info:D *:S,能够正常过滤了,仅仅显示cocos2dx的log输出。

注意,假设改动的是project路径下的cocos2d\cocos\base\CCConsole.cpp文件。下次创建新project。log函数的tag还是cocos2d-x debuginfo,想一劳永逸的话,能够改动cocos2d-x-3.0\cocos\base\CCConsole.cpp。

这样创建新project就会把这个文件拷贝到新project下,就不用每次都改动了。

 

Windows平台cocos2d-x 3.0 android开发环境的更多相关文章

  1. Windows 8(64位)如何搭建 Android 开发环境与真机测试(转)

    可以参考http://wenku.baidu.com/link?url=ghU6IFS1WJXLFKfM_0efv9YQEnMDBrdi9CXwirSs5IOLLeUfdIOh8OOVv0DX89Lt ...

  2. 【Android】2.0 Android开发环境的搭建——Eclipse

    1.0 eclipse,这可不算谷歌开发的,是IBM公司开发的,而且是Java语言写的 2.0 eclipse怎么下.百度“eclipse”,进入eclipse官网 然后,瞎几把下吧……,实在不行百度 ...

  3. 【Android】3.0 Android开发环境的搭建(2)——eclipse

    1.0模拟机登录后,可能会一直停留在这个界面很久,那就去洗洗澡.睡睡觉.吃吃饭…… 2.0登录后可以在设置中改成中文,这样界面对国人来说比较友好. 3.0 虚拟机首页可以看到有短信息.拨打电话.浏览器 ...

  4. windows下Qt5.4.2 for android开发环境配置

    安装包链接: http://yunpan.cn/cFs5tikVA83hK 访问密码 d029   本人所有的软件都安装在D:/Qt   1. 安装 Qt 5.4.2      不在讲述 2, 安装p ...

  5. Android基础之用Eclipse搭建Android开发环境和创建第一个Android项目(Windows平台)

    一.搭建Android开发环境 准备工作:下载Eclipse.JDK.Android SDK.ADT插件 下载地址:Eclipse:http://www.eclipse.org/downloads/ ...

  6. react-native —— 在Windows下搭建React Native Android开发环境

    在Windows下搭建React Native Android开发环境 前段时间在开发者头条收藏了 @天地之灵_邓鋆 分享的<在Windows下搭建React Native Android开发环 ...

  7. 在windows下用cygwin和eclipse搭建cocos2dx的android开发环境

    在windows下用cygwin和eclipse搭建cocos2dx(2.1.4)的android开发环境,2013-8-1更新. 一.准备工作 需要下载和安装以下内容,请根据自己的操作系统选择x86 ...

  8. 如何在Windows上搭建Android开发环境

    Android开发越来越火,许多小伙伴们纷纷学习Android开发,学习Android开发首要任务是搭建Android开发环境,由于大家 主要实在Windows 上开发Android,下面就详细给大家 ...

  9. [转载]在Windows下搭建Android开发环境

    http://jingyan.baidu.com/article/bea41d437a41b6b4c51be6c1.html 在Windows下搭建Android开发环境 | 浏览:30780 | 更 ...

随机推荐

  1. laravel(4.2) +Zizaco

    操作步骤:https://github.com/Zizaco/entrust/tree/1.0 这篇博客说的蛮详细的:http://blog.boolw.com/?p=241 简化后的步骤 1.在根项 ...

  2. Java学习之并发多线程理解

    1.线程简介: 世间万物会同时完成很多工作,如人体同时进行呼吸.血液循环.思考问题等活动,用户既可以使用计算机听歌也可以使用它打印文件,而这些活动完全可以同时进行,这种思想在Java中称为并发,而将并 ...

  3. XHR2:js异步上传

    http://dev.opera.com/articles/xhr2/ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 ...

  4. flume介绍及应用

    版权声明:本文为yunshuxueyuan原创文章.如需转载请标明出处: http://www.cnblogs.com/sxt-zkys/QQ技术交流群:299142667 flume的概念 1.   ...

  5. codeforces #299 div 2

    (总算是5题都做完了- -) 暂时做了4题,先放一下有时间做最后一题(当然如果我真的能做出的话...)(看了大神的代码总算是理解了E题,做完发现也没那么难,果然想出一个思路的过程对于我这种弱渣来说还是 ...

  6. [luoguP2982][USACO10FEB]慢下来Slowing down(dfs序 + 线段树)

    传送门 这个题显然可以用树链剖分做. 然而线段树也能做. 每个点都对它的子树有贡献,所以先求一边 dfs序,然后直接在 dfs序 中搞 线段树 就行. ——代码 #include <cstdio ...

  7. HDU 2352 Verdis Quo

    罗马数字转化为十进制的值 题目非常的长 提取有效信息 并且介绍很多规则 但是事实上有用的信息就是如何加 什么时候减 当当前字母小于下一个字母时 减去当前字母的值 #include <iostre ...

  8. CritterAI与Recast Navigation寻路

    版权声明:本文为博主吴欣伟原创文章,未经博主允许不得转载. 前言 这篇文章写于去年,由于工作需要,故写出这个研究文档,发现网上有关此寻路库的中文资源十分稀少,故发布出来与诸位共享交流,如文中有不对之处 ...

  9. MySQL介绍及安装&MySQL软件基本管理

    mysql介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好 ...

  10. UESTC 1087 【二分查找】

    问了某明==shit 中文题意不解释. 因为数据的范围是1e9以内的所以我们可以通过二分的方法枚举可能的中位数. 用二分法每次判断某一数字比中位数大还是比中位数小. 判断方法是,枚举以第n个数为起点的 ...