cocos2dx 3.2+ 项目创建与问题总汇
本文为Cocos2d-x 3.x 全平台(Android,iOS)新手开发配置教程攻略,希望对大家有所帮助。由于这篇文章是面对新手的。
所以有些地方会啰嗦一些,请勿见怪。
假设教程中有错误。欢迎指正。
假设在配置开发平台时还遇到问题,欢迎大家讨论。
这是个非常牛的IDE,有很多插件让他变得三头六臂。要开发Android的程序,须要下载相关的插件。但假设每一个插件要自己配置,会是非常蛋痛的事情。
假设是Mac,那么天生就自带了。
- python setup.py
运行之后会让你配置上面准备工作中所安装的:ANT、NDK、SDK等文件夹。把安装到哪儿去了填写进入即可。
演示样例:
- cocos new hello(项目名称)-p com.hello(包名字)-l cpp(项目类型) -d E:\MyCocos\cocos2d(文件夹)
所以新建的项目文件会非常大,有很多人怀疑这个的必要性。只是到你之后的开发中就会知道这样的配置方法是对的了。
剩下的就是你的任务了。
一般来说,直接就能够执行。
导入之后,由于SDK的问题。一般无法启动,关于这个问题,以及其他的问题,请參见(四、其他问题解决方式)。
我看到之前的攻略说要99美元,可是看如今的页面的的提示,应该仅仅要有网银就能够支付了。网上的攻略写得很复杂,说要下载证书什么什么的,如今统统都不须要了,XCode所有为您代劳了,仅仅要照提示一路点允许即可。
我的MacBook Air从朋友那里拿来时还是10.7,由于下载总是中断。屡次不成功,所以用XCode 4.6。但好像不通过App Store安装会出这样那样的问题。
所以强烈推荐使用最新的版本号。
- source /Users/yourname/.bash_profile
MAC下的配置相对简单。使用XCode打开项目文件夹下的proj.ios_mac下的项目配置文件即可。之后基本不会出错的。
2、附加头文件的包括文件夹。
当遇到COCOS2DX 3.2+版本号创建权限问题时:
首先,打开终端cd到文件夹/cocos2d-x-3.2/tools/cocos2d-console/bin下,执行cocos.py脚本创建文件。
- ./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权限就能够了
- chmod u+x cocos.py
终端命令:
准备工作
到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)
- 在Eclipse.app上运行“Show package contents”
- 编辑Contents/Info.plist文件。
- 就在下面代码上方
</dict>
</plist>
添加下面代码
<key>NSHighResolutionCapable</key>
<true/> - 将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,
lua, 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下的 c=news&cf=1001&ch=0&di=128&fv=15&jk=31f7e1a8c954ec3d&k=tools&k0=tools&kdi0=0&luki=1&n=10&p=baidu&q=smileking_cpr&rb=0&rs=1&seller_id=1&sid=3dec54c9a8e1f731&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1682280&u=http%3A%2F%2Fwww%2Eth7%2Ecn%2FProgram%2FAndroid%2F201405%2F194689%2Eshtml&urlid=0" id="1_nwl" style="text-decoration:none">tools
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。前面加个#。当前行凝视掉;
cocos2dx 3.2+ 项目创建与问题总汇的更多相关文章
- Cocos2d-x v3.1项目创建(三)
Cocos2d-x v3.1项目创建(三) Cocos2d-x官方为我们提供了用于创建.编译.运行和部署的一套命令行的工具集,也就是上篇文章中我们所提到的Cocos2d-Console,它位于我们的引 ...
- Cocos2d-x 2.x项目创建
cocos2d-x下载地址:http://www.cocos2d-x.org/download 2.0之后的创建项目 1. cd cocos2d-x-2.2.1/tools/project-creat ...
- Cocos2d-x 3.x项目创建
1.首先打开终端,cd到cocos2d-x-3.2目录下,运行命令./setup.py 2. 首先,打开终端cd到目录/cocos2d-x-3.2/tools/cocos2d-console/bin下 ...
- <转>使用eclipse编译cocos2d-x示例项目,创建cocos2d-x android项目并部署到真机
准备 今天将cocos2d-x的示例项目tests编译到android真机运行,以及如何创建cocos2d-x的android项目. 打开cocos2d-x的tests项目,路径为:D:\cocos2 ...
- 1 游戏逻辑架构,Cocos2d-x游戏项目创建,HelloWorld项目创建,HelloWorld程序分析,(CCApplicationProtocol,CCApplication,AppDeleg
1 游戏逻辑架构 具体介绍 A 一个导演同一时间仅仅能执行一个场景,场景其中,能够同一时候载入多个层,一个层能够可载多个精灵.层中亦能够加层. B 场景切换 sceneàaddChild(la ...
- cocos2dx - 环境配置,项目创建
准备工具 cocos2dx当前最新版本:v3.9 官网下载地址: http://www.cocos.com/download/ python 2.7x最新版本:2.7.11 官 ...
- Cocos2d-x项目创建方式
刚接触cocos2d-x的时候,还只有2.x版本,尝试着将cocos2d-x项目创建功能加入到vs里面去,后来,引擎用Python封装好了好多个脚本文件,其中就包括create_project.py文 ...
- cocos2d-x学习之旅(五):1.5 使用eclipse编译cocos2d-x示例项目,创建cocos2d-x android项目并部署到真机
今天将cocos2d-x的示例项目tests编译到android真机运行,以及如何创建cocos2d-x的android项目. 打开cocos2d-x的tests项目,路径为:D:\cocos2d-x ...
- cocos2dx项目创建
射击类游戏文档 作者:浙江传媒学院 新媒体 张勇 1>编译环境 首先我们先去cocos2dx官网上下载cocos2dx最新版本号 http://www.cocos2d-x.org/ 我下载的 ...
随机推荐
- 【程序打包工具 Inno Setup】转
原文转自 https://jingyan.baidu.com/article/36d6ed1f50ecfc1bcf4883aa.html
- Windows开发
1. 介绍 这里简单介绍了Windows应用程序开发的基础知识 2. 基础 Windows下的应用程序有控制台程序和Win32窗口程序,这里讲的是Win32窗口程序 Windows提供了相关静态库(L ...
- ubuntu16.04安装docker CE
如需开始在 Ubuntu 上使用 Docker CE,请确保您满足先决条件,然后再安装 Docker. 如需安装 Docker 企业版 (Docker EE),请转至获取适用于 Ubuntu 的 Do ...
- UOJ 外星人
题目: 2044年,Picks建成了人类第一台基于量子理论的银河系信息传递机.Picks游遍了宇宙,雇用了n个外星人来帮他作为信息传递机的中转站.我们将外星人依次编号为1 到n,其中i 号外星人有ai ...
- Java IO设计模式
JAVA IO 设计模式彻底分析 2011-01-06 14:20:09| 分类: java|字号 订阅 http://blog.csdn.net/tianyue168/archive/2010/0 ...
- 某考试 T1 str
一开始死磕sam,发现根本没法做...... 后来想了想,反正匹配子串的大部分不是sam就是 二分+hash啊,,,于是就想了想二分+hash,发现好像可以做啊! 就是假设我们要让 s1[1] 映射到 ...
- Mac 奇淫巧技 哈哈
1. 设置别名 sudo vim ~/.bash_profile alias ll='ls -lhF' alias la='ls -hlAF' alias c='clear' alias rm='ls ...
- Concurrency(Locking, Blocking and Row Versioning)
https://www.simple-talk.com/sql/t-sql-programming/row-versioning-concurrency-in-sql-server/?utm_sour ...
- 从 Git Gui 管理的Repository(库) 提交更改到 Bonobo服务器管理的Repository(库)
要提交更改到Bonobo服务器管理的某个Repository(库),必须先得在Bonobo服务器上有此Repository(库)——简直就是废话.那么怎么才能这个Repository(库)变出来呢?其 ...
- UICollectionView专题
什么是UICollectionView UICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView(请一定注意这是UICollectionView的最最 ...