win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

win32环境配置以及eclipse+ndk+sdk+cygwin的android移植

目前整个学习笔记的版本是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插件,有兴趣的朋友可以去看下,这里就不说了。


win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

用vs2010打开解决方案以后点击生成解决方案

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

这个要花一些时间,慢慢等吧。

生成完成以后,可以直接启动HelloCpp看是否成功。

好的,出现这个图说明已经安装成功了。

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

接下来试试创建自己的Hello项目。

先点击目录下的install-templates-msvc.bat,这样就会生成模板

然后回到vs2010,点解决方案->添加->新建项目,

一路点确定,这里我们不需要box2d就不点了。

ok建立成功。

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

接着直接点击这个项目启动新实例就可以看到成果了(为了方便可以把它设置为启动项目)。

应该可以顺利成功。

然后我们进源码来随便改一下HelloworldScene.cpp

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

把hello world改成hello android

运行

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

ok没有问题。

好了接下来才是重点。

第二步:android开发环境

1.安装eclipse+cdt+adt

以前的教程里面需要先下载eclipse,安装cdt,安装adt之类的,不过现在已经没有这个必要了。

我们先来到android的开发者官网,找到bundle。http://developer.android.com/sdk/installing/bundle.html

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

是的,伟大的谷歌大神告诉我们,现在可以使用集成版的IDE了。

所以还等什么呢,赶快去下载吧。

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

在这里找到你要的版本。

下载后解压。我是解压到了e:\android下面。

解压完成后是这样的

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

直接打开eclipse

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

是的,cdt这些东西已经装好,也就不需要我们再麻烦配置了。

接下来有一条要再说一下的就是这里的sdk其实不是很全,可以点击window->android sdk manager选择版本下载安装。

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

我这里装的是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,接着选择一个根目录

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

接着点下一步下一步

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

在这里选择想要安装的软件,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环境,装好以后可以进去试试。

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

注意这个要进行配置

编辑.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"
win32环境配备以及eclipse+ndk+sdk+cygwin的android移植
当然,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/

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

我图上下面内容也是为了防止乱码,只是某种程度可用,所以抄不抄下来也无所谓了。

说明一下,首先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。不要着急,先编辑一下。win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

重点就是cygwin,sdk,ndk这三个路径的位置对不对,如果不对的话就改对。

正确以后,点击bat开始

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

注意这里的名字要换一个不一样的,因为如果是一样的话会提示你已经存在。所以这里我们换成HelloMyAndroid,好了接下来会要求选择sdk的id。这里我选的是我之前android装上的4.2的,所以就用1就ok了。

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

ok,然后就会开始生成。

生成完了以后我们可以到HelloMyAndroid里面看一下,目录里面有

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

这三个文件夹。选择proj.android文件夹,可以看到里面有native.sh,这个就是用来生成的了。

好了,我们把我们最早项目的classes和Resources文件夹复制过来。(这里其实也可以把proj.android复制到原来的文件夹里,一般来说推荐这种做法)

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

注意,这里因为我们没有添加新的文件,所以这样就可以了,但是如果添加了新的cpp等文件的时候,就需要修改proj.android中jni目录下的android.mk

好了,可以进入下一个环节了。

2.编译

现在要回到cygwin环境下

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

在这里运行./build_native.sh

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

3.回到eclipse,选择创建一个已经存在的项目

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

选择proj.android目录

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

然后我们会发现这里有错

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

仔细看一下目录,然后我们会发现E:\cocos2d-2.1\HelloMyAndroid\proj.android\res这个下面的资源目录里面没有icon.png只有ic_launcher.png,所以把icon改为ic_launcher

改完以后呢,我们就可以开始生成apk了。注意先把cygwin关掉,因为那里运行了我们的adb。

这样x也消失了,就可以生成我们的apk了。

接下来出现了一点问题。

我自己设置了adb的真机测试没有问题,但是用4.2版本的模拟器却出现了Unexpected value from nativeGetEnabledTags: 0的错误。

查了一下是sdk的bug,新的sdk在4.1以上有这个问题。

所以我在sdkmanager这里重新下载了4.0.3版本的模拟器

win32环境配备以及eclipse+ndk+sdk+cygwin的android移植

下一篇来解决一下多分辨率适配的问题。