zoukankan      html  css  js  c++  java
  • 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. python setup.py 
     
    Cocos2d-x 3.1版本号使用这个setup.py来安装,十分方便。

    运行之后会让你配置上面准备工作中所安装的:ANT、NDK、SDK等文件夹。把安装到哪儿去了填写进入即可。

     
    4、建立自己的项目
    用setup.py配置好Cocos2d-x的环境之后,你的命令行中就会多如“cocos”的命令,新建项目将使用这个命令进行。

    演示样例:

    1. cocos new hello(项目名称)-p com.hello(包名字)-l cpp(项目类型) -d E:MyCocoscocos2d(文件夹) 
     
    新建的项目会把全部的源文件和库都拷到你的项目文件夹中。

    所以新建的项目文件会非常大,有很多人怀疑这个的必要性。只是到你之后的开发中就会知道这样的配置方法是对的了。

     
    项目建立好之后,就能够开发了:
     
    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须要再加上一句:
    1. 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
    Cocos2d-x的开发人员已经在Android.mk里面加上了非常多这样的路径。平时是凝视掉的。您要使用时把这些添加上去即可。

     
    问题: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  详细文件夹:  ..cocos2dextensionsproj.win32libExtensions.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 plaincopy
    1. ./cocos.py new HelloWorldDemo -p com.coco2dx.org -l cpp -d ~/Desktop  

    參数说明:

    HelloWorldDemo为项目名称

    -p后面接包名

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

    -d后面接项目存放的文件夹

    假设出现-bash: ./cocos.py: Permission denied,是由于没有权限。用命令chmod改动一下文件夹下的cocos.py权限就能够了

    1. chmod u+x cocos.py  


    终端命令:




    COCOS2DX 官方项目创建过程:

    准备工作

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

    到Android官方站点下载Android SDK

    download2

    最后还须要在Android官方站点下载Android NDK

    download3

    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的安装文件夹。例如以下图所看到的:

    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, lua, js三种类型
    • -d后面接项目存放的文件夹

    生成Android项目文件

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

    build

    编译成功。

    并将**HelloWorldDemo/cocos2d/cocos/2d/platform/android/java/src/org/cocos2dx/lib**目录复制到**HelloWorldDemo/proj.android/src/org/cocos2dx**下。

    导入Android项目到Eclipse

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

    export

    export2

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

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

    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。前面加个#。当前行凝视掉;

    结束;

  • 相关阅读:
    vue中的 computed 和 watch 的区别
    mysql8.0 初始化数据库及表名大小写问题
    sql server alwayson 调整数据文件路径
    zabbix 自定义监控 SQL Server
    mysql 创建用户及授权
    mysql 设置从库只读模式
    mysql8.0 主从复制安装及配置
    centos8.0安装mysql8.0
    centos8替换阿里数据源
    npm publish 报错 【you or one of your dependencies are requesting a package version that is forbidden by your security policy】
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/7197555.html
Copyright © 2011-2022 走看看