Orca原创,转贴请标明链接Orca的移动开发轨迹。
目前整个学习笔记的版本是cocos2d-x 2.1.0beta3。
准备开始做cocos2d-x的跨平台游戏。因为主力做的还是android,所以趁刚开始先搞定win32版本到android的移植步骤吧。
第一步:cocos2d-x+vs环境
这个很容易,跟着官网教程cn.cocos2d-x.org就可以搞定。
我这里再简单说一下。
1.从http://cocos2d-x.org/projects/cocos2d-x/wiki/Download下载最新版本的cocos2d-2.1beta3-x-2.1.0 @ Dec 05 2012。
我下载后解压到了E:\cocos2d-2.1下。
然后找一个vs来安装,安装后点击cocos2d-2.1目录当中的cocos2d-win32-vc2010.sln解决方案。我安装的是vs2010,所以用的是2010的解决方案。顺便说下我的vs2010安装了vxa插件和vsvim插件,有兴趣的朋友可以去看下,这里就不说了。
用vs2010打开解决方案以后点击生成解决方案
这个要花一些时间,慢慢等吧。
生成完成以后,可以直接启动HelloCpp看是否成功。
好的,出现这个图说明已经安装成功了。
接下来试试创建自己的Hello项目。
先点击目录下的install-templates-msvc.bat,这样就会生成模板
然后回到vs2010,点解决方案->添加->新建项目,
一路点确定,这里我们不需要box2d就不点了。
ok建立成功。
接着直接点击这个项目启动新实例就可以看到成果了(为了方便可以把它设置为启动项目)。
应该可以顺利成功。
然后我们进源码来随便改一下HelloworldScene.cpp
把hello world改成hello android
运行
ok没有问题。
好了接下来才是重点。
第二步:android开发环境
1.安装eclipse+cdt+adt
以前的教程里面需要先下载eclipse,安装cdt,安装adt之类的,不过现在已经没有这个必要了。
我们先来到android的开发者官网,找到bundle。http://developer.android.com/sdk/installing/bundle.html
是的,伟大的谷歌大神告诉我们,现在可以使用集成版的IDE了。
所以还等什么呢,赶快去下载吧。
在这里找到你要的版本。
下载后解压。我是解压到了e:\android下面。
解压完成后是这样的
直接打开eclipse
是的,cdt这些东西已经装好,也就不需要我们再麻烦配置了。
接下来有一条要再说一下的就是这里的sdk其实不是很全,可以点击window->android sdk manager选择版本下载安装。
我这里装的是4.2的api
2.安装ndk
这个也简单,找到ndk下载后解压即可。
ndk下载的地址http://developer.android.com/tools/sdk/ndk/index.html#Installing
记得下载windows版本的!不要以为cygwin是类似unix环境就用linux版,你会后悔的(好吧我就是这里中招了= =不过搞不好也只有我这种刚从linux下转回windows的会中招也说不定)
我下载后解压到了e:\ndk目录下
3.安装cgywin
http://www.cygwin.com
在这里下载
下载以后安装就不用多说了,选择install from internet,接着选择一个根目录
接着点下一步下一步
在这里选择想要安装的软件,autoconf2.1、automake1.10、binutils、gcc-core、gcc- , g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make
大概这些就行了。
可以把setup.exe放到cgywin的根目录下,这样方便以后装新的软件(重新点击setup.exe选择新的就可以了)
这是一个类linux环境,装好以后可以进去试试。
注意这个要进行配置
编辑.bashrc
在底部加入
# 让ls和dir命令显示中文和颜色
export LESSCHARSET=latin1
alias ls='ls --show-control-chars -hF --color=tty'
alias dir='dir -N --color'
# 设置为中文环境,使提示成为中文
export LANG="zh_CN.GBK"
当然,cygwin的中文支持真的很糟糕,这样做以后有时候还是会出现乱码。谋事在人成事在天就这样吧= =
接着还要编辑一下.bash_profile,环境变量放在这里。(其实放在.bashrc也可以,不过这里就这样吧)
添加下面这些内容
export NDK_ROOT="/cygdrive/e/android/ndk"
export SDK_ROOT="/cygdrive/e/android/sdk"
export PATH=$PATH:NDK_ROOT
export PATH=$PATH:SDK_ROOT
export COCOS2DX_ROOT="/cygdrive/e/cocos2d-2.1"
export NDK_TOOLCHAIN_VERSION=4.7
# adb PATH
export PATH=$PATH:/cygdrive/e/android/sdk/platform-tools/
我图上下面内容也是为了防止乱码,只是某种程度可用,所以抄不抄下来也无所谓了。
说明一下,首先cygwin里面驱动器的路径通通是/cygdrive/x/这种样子,所以e:\就相当于/cygdrive/e/
其次,这条export NDK_TOOLCHAIN_VERSION=4.7是android ndk官方网站上的说明,因为我用的n8r,所以在ndk_build时使用4.7需要添加这个环境变量.
这样子cygwin基本上配置完了。
第三步:编译生成android代码
1.生成代码
重新回到我们的cocos2dx目录下,选择create-android-project.bat。不要着急,先编辑一下。
重点就是cygwin,sdk,ndk这三个路径的位置对不对,如果不对的话就改对。
==========
注意这里还需要修改一下template/android文件夹下的copy_files.h
==========
然后点击bat开始
注意这里的名字要换一个不一样的,因为如果是一样的话会提示你已经存在。所以这里我们换成HelloMyAndroid,好了接下来会要求选择sdk的id。这里我选的是我之前android装上的4.2的,所以就用1就ok了。
ok,然后就会开始生成。
生成完了以后我们可以到HelloMyAndroid里面看一下,目录里面有
这三个文件夹。选择proj.android文件夹,可以看到里面有native.sh,这个就是用来生成的了。
好了,我们把我们最早项目的classes和Resources文件夹复制过来。(这里其实也可以把proj.android复制到原来的文件夹里,一般来说推荐这种做法)
注意,这里因为我们没有添加新的文件,所以这样就可以了,但是如果添加了新的cpp等文件的时候,就需要修改proj.android中jni目录下的android.mk
好了,可以进入下一个环节了。
2.编译
现在要回到cygwin环境下
在这里运行./build_native.sh
3.回到eclipse,选择创建一个已经存在的项目
选择proj.android目录
然后我们会发现这里有错
仔细看一下目录,然后我们会发现E:\cocos2d-2.1\HelloMyAndroid\proj.android\res这个下面的资源目录里面没有icon.png只有ic_launcher.png,所以把icon改为ic_launcher
改完以后呢,我们就可以开始生成apk了。注意先把cygwin关掉,因为那里运行了我们的adb。
这样x也消失了,就可以生成我们的apk了。
============
补充:如果出现了java文件未被复制的情况,请修改template\android\copy_files.sh。
============
再补充:升级cocos2d-x版本时如果根目录不同,当你复制项目文件夹到新解决方案目录下进行升级,可能会出现
这个问题。
这时删除proj.android下的obj文件夹即可解决这个问题。
============
接下来出现了一点问题。
我自己设置了adb的真机测试没有问题,但是用4.2版本的模拟器却出现了Unexpected value from nativeGetEnabledTags: 0的错误。
查了一下是sdk的bug,新的sdk在4.1以上有这个问题。
所以我在sdkmanager这里重新下载了4.0.3版本的模拟器
下一篇来解决一下多分辨率适配的问题。