cocos2dx 3.2+ 项目创建与问题总汇

本文为Cocos2d-x 3.x 全平台(Android,iOS)新手开发配置教程攻略,希望对大家有所帮助。因为这篇文章是面对新手的。所以有些地方会啰嗦一些,请勿见怪。如果教程中有错误,欢迎指正。如果在配置开发平台时还遇到问题,欢迎大家讨论。

本文所使用的环境是PC(Win7),HTC G18,MacBook Air 以及 Mini iPad。
一、通用准备工作
1、安装Cocos2d-x 3.1
在Cocos2d官网上下载 Cocos2d-x 3.2+引擎,下载后解压缩。
2、安装Eclipse与Android SDK
这个在Mac上或是PC上开发都是可以通用的。
Eclipse 在其官网下载( 官网地址)。
Android SDK 在Android开发者中心下载( 地址)。
Eclipse是开发Android需要用到的IDE。这是个很牛的IDE,有许多插件让他变得三头六臂。要开发Android的程序,需要下载相关的插件,但如果每个插件要自己配置,会是很蛋痛的事情。
如果是新手,推荐使用:ADT Bundle。这是Eclipse+Android SDK的合体,所有的项目都已经帮你配置好了。
3、安装JDK
Eclipse需要Java环境才能运行。如果事先没有安装Java环境,则会报错。
解决方案安装jdk( 下载地址)。
一般来说安装之后会自动配置好环境变量。如果还没有解决问题,请查找网络上关于JDK安装的攻略,很多的。
4、安装CDT插件下载地址
这是个Eclipse的插件,用来支持Eclipse中C/C++语言的开发。
从Eclipse的官网下载,下载之后,将features和plusins这两个文件夹里面的内容复制到Ecplise安装目录下对应的文件夹之后就可以了。
5、安装NDK下载地址
这是进行C/C++与Java混合编译的必要工具。记下下载之后解压到的目录,因为到之后的安装中会用到。
6、安装ANT下载地址
Cocos的Android开发需要用到它,所以下载下来安装好吧。
二、PC环境下配置过程
1、安装VS2012官方地址
网上还有很多其他下载地址。
最好是2012,我曾经试过2010,2013,都会出这样那样的问题。所以,2012!
2、安装python 2.7.6下载地址
因为Cocos2d-x的安装程序是用phthon写的,所以需要这个软件。不要下载python3.0以上的版本,否则运行会出错。如果是Mac,那么天生就自带了。
3、进行开发环境配置
以上的工作完成之后,就可以进行配置了。启动Windows的命令行(CMD)工具。进入Cocos2d-x 3.1的安装目录,执行:
 
 
  1. pythonsetup.py
Cocos2d-x 3.1版本使用这个setup.py来安装,十分方便。执行之后会让你配置上面准备工作中所安装的:ANT、NDK、SDK等目录,把安装到哪儿去了填写进入就行。
4、建立自己的项目
用setup.py配置好Cocos2d-x的环境之后,你的命令行中就会多如“cocos”的命令,新建项目将使用这个命令进行。示例:
  
  
  • cocosnewhello(项目名称)-pcom.hello(包名字)-lcpp(项目类型)-dE:\MyCocos\cocos2d(目录)
  • 新建的项目会把所有的源文件和库都拷到你的项目目录中。所以新建的项目文件会很大,有许多人怀疑这个的必要性,不过到你之后的开发中就会知道这种配置方法是对的了。
    项目建立好之后,就可以开发了:
    A、进行VS2012的开发。
    找到你的项目目录下的:proj.win32,打开里面的解决方案就行。剩下的就是你的任务了。一般来说,直接就可以运行。
    B、进行Android的开发。
    使用Eclipse中的项目导入,导入proj.android中的项目方案。导入之后,因为SDK的问题,一般无法启动,关于这个问题,以及其它的问题,请参见(四、其它问题解决方案)。
    三、MAC环境下配置过程
    1、注册苹果开发者账号注册地址
    如果不使用真机,使用模拟器调试,那么有开发者账号应该就足够了。
    如果要使用真机调试,需要购买IOS开发者会员,688RMB一年。我看到之前的攻略说要99美元,但是看现在的页面的的提示,应该只要有网银就可以支付了。网上的攻略写得非常复杂,说要下载证书什么什么的,现在统统都不需要了,XCode全部为您代劳了,只要照提示一路点同意就行。
    2、安装XCode
    在你的开发者首页下面就有XCode的下载。通过App Store下载安装即可。
    请使用最新的XCode(需要OS X 10.8以上系统支持),并使用App Store安装。我的MacBook Air从朋友那里拿来时还是10.7,因为下载总是中断,屡次不成功,所以用XCode 4.6,但好像不通过App Store安装会出这样那样的问题。所以强烈推荐使用最新的版本。
    3、进行开发者环境配置。
    与PC的配置一样,打开MAC的终端程序,执行setup.py,配置好各种SDK的路径就行。但MAC需要再加上一句:
      
      
  • source/Users/yourname/.bash_profile
  • 这是用来刷新配置文件的。
    4、建立项目文件
    使用命令行建立。
    如果你像我一样用两个平台(PC与MAC)开发,可以共享同一个项目目录。我的项目文件是放在PC上的,MAC通过共享访问项目文件。
    项目建立好之后就可以开发了。MAC下的配置相对简单,使用XCode打开项目目录下的proj.ios_mac下的项目配置文件就行。之后基本不会出错的。
    四、其它问题解决方案
    Eclipse与Android相关:
    问题:SDK错误
    因为Cocos2d-x的模版默认是使用Android 2.3.3(API-10),如果新安装的ADT Bundle或Android SDK,是API-19,则会出现错误,解决方案是通过Android SDK中的管理工具(SDK Manager)下载Android 2.3.3的SDK。
    问题:Project 'XXX' is missing required source folder: 'gen'
    这个问题就是上面的SDK错误导致的。
    问题:undefined reference to 'cocos2d::network::HttpClient::getInstance()'
    我是使用网络库(network)的时候出现这个错误的。如果你使用其它库,解决方案是一样的。原因是缺少库的引用。解决方案是在Android.mk里面增加:
    LOCAL_WHOLE_STATIC_LIBRARIES += cocos_network_static
    Cocos2d-x的开发者已经在Android.mk里面加上了很多这种路径,平时是注释掉的。您要使用时把这些增加上去就行。
    问题:fatal error: cocos-ext.h: No such file or directory
    问题分析:缺少头文件路径的引用
    需要在:Android.mk里面增加
    LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../cocos2d/extensions
    问题:The import org.cocos2dx.lib cannot be resolved。
    无法找到指定的库文件。解决的方案是增加路径的引用:Project Properties -> Java Build Path -> Source and then linking “项目目录/cocos/platform/android/java/src”
    VS2012相关:
    问题:“extensions/ExtensionMacros.h”: No such file or directory
    无法打开包括文件。
    1、解决方案中,添加“现有项目”--> libExtensions 具体目录: ..\cocos2d\extensions\proj.win32\libExtensions.vcxproj
    2、项目中添加引用-->libExtensions
    3、通过:属性->C/C++->附加包含目录。附加包含目录:$(EngineRoot)
    如果你使用其它的文件,解决方案是一样的。1、增加项目的引用。2、附加头文件的包含目录。

    当遇到COCOS2DX 3.2+版本创建权限问题时:

    首先,打开终端cd到目录/cocos2d-x-3.2/tools/cocos2d-console/bin下,运行cocos.py脚本创建文件。

    [javascript] view plain copy
    1. ./cocos.pynewHelloWorldDemo-pcom.coco2dx.org-lcpp-d~/Desktop

    参数说明:

    HelloWorldDemo为项目名称

    -p后面接包名

    -l后面接开发语言类型,有cpp,lua,js三种类型

    -d后面接项目存放的目录

    如果出现-bash: ./cocos.py: Permission denied,是因为没有权限。用命令chmod修改一下目录下的cocos.py权限就可以了

    [cpp] copy
      chmodu+xcocos.py


    终端命令:




    COCOS2DX 官方项目创建过程:

    准备工作

    到Cocos2d-x官方网站下载最新版本v3.2alpha0

    到Android官方网站下载Android SDK

    最后还需要在Android官方网站下载Android NDK

    JDK

    检测JDK是否安装,版本是否大于1.6.0。打开终端,输入:

    1java -version
    

    MacOS X会自动下载JDK,如图所示。



    你会看到如下所示信息:

    java version "1.6.0_37" Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909) Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)

    检查完后,便可开始设置Mac的Android开发环境。

    配置Android SDK环境

    解压ZIP文件(名字为“adt-bundle-.zip”),保存至适当位置如主目录的“Development”(开发)目录。

    打开adt-bundle-/eclipse/目录并启动Eclipse。
    就这样!至此集成开发环境已经加载了Android开发人员(Android Developer Tools)工具插件,SDK已经准备就绪。

    在MBP Retina电脑中安装Eclipse

    如果你用的是配备Retina显示屏的MacBook Pro电脑,注意原装Eclipse不支持Retina显示屏,但是可以使用简单的技巧启动Retina支持功能。(本方法来自:https://bugs.eclipse.org/bugs/show_bug.cgi?id=382972

    1. 在Eclipse.app上执行“Show package contents”
    2. 编辑Contents/Info.plist文件。
    3. 就在以下代码上方
      </dict> </plist>
      增加以下代码
      <key>NSHighResolutionCapable</key> <true/>
    4. 将Eclipse.app应用移至一个新文件夹(清除OS X中info.plist文件的缓存),然后再移回旧文件夹。 5.启动Eclipse即可,已支持Retina显示屏。

    打开Eclipse,选择”ADT->偏好设置”,然后选择Android项来指定Android SDK的安装目录。如下图所示:

    配置NDK环境

    将iOS项目源文件编译成项目时需要用到NDK来生成native文件。

    先解压下载的NDK和ADT放在同一个父文件夹里。

    按如下操作添加NDK环境变量:

    export NDK_ROOT="/Users/yiming/Desktop/android-ndk-r9"

    重启终端。

    创建HelloWorld项目

    将刚才下载的压缩包解压到你指定的文件夹里。

    进入到目录**cocos2d-x-3.2alpha0/tools/cocos2d-console/bin/cocos.py**

    打开终端运行**cocos.py**脚本创建文件

    ./cocos.py new HelloWorldDemo -p com.coco2dx.org -l cpp -d ~/Desktop 或者 python cocos.py new HelloWorldDemo -p com.coco2dx.org -l cpp -d ~/Desktop

    参数说明:

    • HelloWorldDemo为项目名称
    • -p后面接包名
    • -l后面接开发语言类型,有cpp,js三种类型
    • -d后面接项目存放的目录

    生成Android项目文件

    执行**HelloWorldDemo/proj.android**下的*build_native.py*脚本进行编译

    编译成功!

    并将**HelloWorldDemo/cocos2d/cocos/2d/platform/android/java/src/org/cocos2dx/lib**文件夹拷贝到**HelloWorldDemo/proj.android/src/org/cocos2dx**下。

    导入Android项目到Eclipse

    通过导入一个已存在的Android项目的方法将生成的HelloWorldDemo导入到Eclipse中如下:

    http://write.blog.csdn.net/postedit/40741819

    你可能看到如下错误提示:

    The import org.cocos2dx.lib cannot be resolved HelloWorld.java /HelloWorld/src/com/young40/test line 26 Java Problem Cocos2dxActivity cannot be resolved to a type HelloWorld.java /HelloWorld/src/com/young40/test line 30 Java Problem Cocos2dxActivity cannot be resolved to a type HelloWorld.java /HelloWorld/src/com/young40/test line 33 Java Problem

    你需要将

    /opt/cocos2d-2.1beta3-x-2.1.1/cocos2dx/platform/android/java

    按照上面的方法导入到Eclipse里面。然后在HelloWorldDemo项目上单击右键刷新,错误就会消失。

    将您的手机设置成调试模式并用USB线连接到电脑,在Eclipse中运行HelloWorld,然后就能在手机上看到已经运行的HelloWorld了!



    新问题汇总:
    问题1:
    Cocos2d-x 3.2正式版,iOS程序编译没任何问题,结果使用cocos compile -p android编译生成APK程序,结果悲剧了,出现以下错误。

    Android NDK: Invalid APP_STL value: c++_static

    Android NDK: Please use one of the following instead: system stlport_static stlport_static_hard stlport_shared stlport_shared_hard gnustl_static gnustl_shared gabi++_static gabi++_shared libc++_static libc++_shared none

    make: Entering directory `/game/physics_engine/proj.android‘

    /sdk/ndk/android-ndk-r9c/build/core/add-application.mk:274: *** Android NDK: Aborting . Stop.

    make: Leaving directory `/game/physics_engine/proj.android‘

    Error running command,return code: 2

    很显然,这个错误是使用了不正确的STL Library,解决方案有如下两个。

    方案1:临时方案

    修改Application.mk文件,将原来的前4行替换为如下的内容。然后替换就ok了

    原来的内容如下:

    APP_STL := c++_static

    NDK_TOOLCHAIN_VERSION=clang

    APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -std=c++11 -fsigned-char

    APP_LDFLAGS := -latomic

    替换后的内容如下:

    APP_STL := gnustl_static

    APP_CPPFLAGS := -frtti -DCOCOS2D_DEBUG=1 -std=c++11 -Wno-literal-suffix -fsigned-char

    方案2:

    由于c++_static只有在最新的NDK中才可使用,所以下载最新的NDK就可以了

    大家可以从http://developer.android.com/tools/sdk/ndk/index.html下载最新的NDK版本,然后从新设置ndk路径即可。


    问题2:

    MAC 上找不到.bash_profile该怎么办?

    1. 启动终端Terminal

    2. 进入当前用户的home目录

    输入cd ~

    3. 创建.bash_profile

    输入touch .bash_profile

    4. 编辑.bash_profile文件

    输入open -e .bash_profile

    因为是为了搭建Android开发环境,输入Android SDK下的tools目录:export PATH=${PATH}:/eclipse/android_sdk/tools

    5. 保存文件,关闭.bash_profile

    6. 更新刚配置的环境变量

    输入source .bash_profile

    7. 验证配置是否成功

    输入android启动Android SDK and AVD Manager


    问题3:
    编译2DXLUA项目时出现的错误:
    编译打包:cocos compile -p android --ap20
    CPP代码编译完成后出现错误:
    /Users/ks/Documents/adt-bundle-mac-x86_64-20131030/sdk/tools/ant/build.xml:892: The following error occurred while executing this line:
    /Users/ks/Documents/adt-bundle-mac-x86_64-20131030/sdk/tools/ant/build.xml:894: The following error occurred while executing this line:
    /Users/ks/Documents/adt-bundle-mac-x86_64-20131030/sdk/tools/ant/build.xml:906: The following error occurred while executing this line:
    /Users/ks/Documents/adt-bundle-mac-x86_64-20131030/sdk/tools/ant/build.xml:284: null returned: 2
    解决方法:
    进入project.properties ,#android.library.reference.1=../cocos2d/cocos/platform/android/java,前面加个#,当前行注释掉;

    结束;

    版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

    相关推荐


        本文实践自 RayWenderlich、Ali Hafizji 的文章《How To Create Dynamic Textures with CCRenderTexture in Cocos2D 2.X》,文中使用Cocos2D,我在这里使用Cocos2D-x 2.1.4进行学习和移植。在这篇文章,将会学习到如何创建实时纹理、如何用Gimp创建无缝拼接纹
    Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@163.com微信公众号:HopToad 欢迎转载,转载标注出处:http://blog.csdn.netotbaron/article/details/424343991.  软件准备 下载地址:http://cn.cocos2d-x.org/download 2.  简介2.1         引用C
    第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从Cocos2D-x官网上下载,进入网页http://www.cocos2d-x.org/download,点击Cocos2d-x以下的Download  v3.0,保存到自定义的文件夹2:从python官网上下载。进入网页https://www.python.org/downloads/,我当前下载的是3.4.0(当前最新
        Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发引擎,易学易用,支持多种智能移动平台。官网地址:http://cocos2d-x.org/当前版本:2.0    有很多的学习资料,在这里我只做为自己的笔记记录下来,错误之处还请指出。在VisualStudio2008平台的编译:1.下载当前稳
    1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《最强大脑》娱乐节目。将2048改造成一款挑战玩家对数字记忆的小游戏。邮箱:appdevzw@163.com微信公众号:HopToadAPK下载地址:http://download.csdn.net/detailotbaron/8446223源码下载地址:http://download.csdn.net/
       Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试以QtCreatorIDE来进行CMake构建。Cocos2d-x3.X地址:https://github.com/cocos2d/cocos2d-x1.打开QtCreator,菜单栏→"打开文件或项目...",打开cocos2d-x目录下的CMakeLists.txt文件;2.弹出CMake向导,如下图所示:设置
     下载地址:链接:https://pan.baidu.com/s/1IkQsMU6NoERAAQLcCUMcXQ提取码:p1pb下载完成后,解压进入build目录使用vs2013打开工程设置平台工具集,打开设置界面设置: 点击开始编译等待编译结束编译成功在build文件下会出现一个新文件夹Debug.win32,里面就是编译
    分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net前言上次用象棋演示了cocos2dx的基本用法,但是对cocos2dx并没有作深入的讨论,这次以超级马里奥的源代码为线索,我们一起来学习超级马里奥的实
    1. 圆形音量button事实上作者的本意应该是叫做“电位计button”。可是我觉得它和我们的圆形音量button非常像,所以就这么叫它吧~先看效果:好了,不多解释,本篇到此为止。(旁白: 噗。就这样结束了?)啊才怪~我们来看看代码:[cpp] viewplaincopyprint?CCContro
    原文链接:http://www.cnblogs.com/physwf/archive/2013/04/26/3043912.html为了进一步深入学习贯彻Cocos2d,我们将自己写一个场景类,但我们不会走的太远,凡是都要循序渐进,哪怕只前进一点点,那也至少是前进了,总比贪多嚼不烂一头雾水的好。在上一节中我们建
    2019独角兽企业重金招聘Python工程师标准>>>cocos2d2.0之后加入了一种九宫格的实现,主要作用是用来拉伸图片,这样的好处在于保留图片四个角不变形的同时,对图片中间部分进行拉伸,来满足一些控件的自适应(PS: 比如包括按钮,对话框,最直观的形象就是ios里的短信气泡了),这就要求图
    原文链接:http://www.cnblogs.com/linji/p/3599478.html1.环境和工具准备Win7VS2010/2012,至于2008v2版本之后似乎就不支持了。 2.安装pythonv.2.0版本之前是用vs模板创建工程的,到vs2.2之后就改用python创建了。到python官网下载版本2.7.5的,然后
    环境:ubuntu14.04adt-bundle-linux-x86_64android-ndk-r9d-linux-x86_64cocos2d-x-3.0正式版apache-ant1.9.3python2.7(ubuntu自带)加入环境变量exportANDROID_SDK_ROOT=/home/yangming/adt-bundle-linux/sdkexportPATH=${PATH}:/$ANDROID_SDK_ROOTools/export
    1开发背景游戏程序设计涉及了学科中的各个方面,鉴于目的在于学习与进步,本游戏《FlappyBird》采用了两个不同的开发方式来开发本款游戏,一类直接采用win32底层API来实现,另一类采用当前火热的cocos2d-x游戏引擎来开发本游戏。2需求分析2.1数据分析本项目要开发的是一款游
    原文链接:http://www.cnblogs.com/linji/p/3599912.html//纯色色块控件(锚点默认左下角)CCLayerColor*ccc=CCLayerColor::create(ccc4(255,0,0,128),200,100);//渐变色块控件CCLayerGradient*ccc=CCLayerGradient::create(ccc4(255,0,0,
    原文链接:http://www.cnblogs.com/linji/p/3599488.html//载入一张图片CCSprite*leftDoor=CCSprite::create("loading/door.png");leftDoor->setAnchorPoint(ccp(1,0.5));//设置锚点为右边中心点leftDoor->setPosition(ccp(240,160));/
    为了答谢广大学员对智捷课堂以及关老师的支持,现购买51CTO学院关老师的Cocos2d-x课程之一可以送智捷课堂编写图书一本(专题可以送3本)。一、Cocos2d-x课程列表:1、Cocos2d-x入门与提高视频教程__Part22、Cocos2d-x数据持久化与网络通信__Part33、Cocos2d-x架构设计与性能优化内存优
    Spawn让多个action同时执行。Spawn有多种不同的create方法,最终都调用了createWithTwoActions(FiniteTimeAction*action1,FiniteTimeAction*action2)方法。createWithTwoActions调用initWithTwoActions方法:对两个action变量初始化:_one=action1;_two=action2;如果两个a
    需要环境:php,luajit.昨天在cygwin上安装php和luajit环境,这真特么是一个坑。建议不要用虚拟环境安装打包环境,否则可能会出现各种莫名问题。折腾了一下午,最终将环境转向linux。其中,luajit的安装脚本已经在quick-cocos2d-x-develop/bin/中,直接luajit_install.sh即可。我的lin
    v3.0相对v2.2来说,最引人注意的。应该是对触摸层级的优化。和lambda回调函数的引入(嗯嗯,不枉我改了那么多类名。话说,每次cocos2dx大更新。总要改掉一堆类名函数名)。这些特性应该有不少人研究了,所以今天说点跟图片有关的东西。v3.0在载入图片方面也有了非常大改变,仅仅只是