Cocos2d-x + Android + Eclipse + Windows 7

来源:互联网 发布:ubuntu挂起后如何启动 编辑:程序博客网 时间:2024/06/11 17:45

详细搭建步骤如下:

一、Android 开发环境搭建

1、Android 开发工具

Android开发环境搭建不是重点,相信看此文章的很多人都已经搭建成功,这里随便概述性的说说。

1.1 下载 JDK

1.2 下载 Eclipse

1.3 下载 Android SDK

1.4 启动Eclipse , 安装 ADT


2、下载安装Android NDK

我使用的NDK版本为r8

Google 出的最新NDK 为 r9 下载地址为

http://developer.android.com/sdk/ndk/index.html

3、下载安装cygwin

     由于NDK编译代码时必须要用到make和gcc,所以你必须先搭建一个linux环境, cygwin是一个在windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,非常有用。通过它,你就可以在不安装linux的情况下使用NDK来编译C、C++代码了。下面我们一步一步的安装cygwin吧。

(安装的时候忘记截图了)

首先,你得先跑到http://www.cygwin.com下载setup.exe

3.1 然后双击运行吧,运行后你将看到安装向导界面:

3.2  点击下一步

     此时让你选择安装方式:

           1)Install from Internet:直接从Internet上下载并立即安装(安装完成后,下载好的安装文件并不会被删除,而是仍然被保留,以便下次再安装)。

           2)Download Without Installing:只是将安装文件下载到本地,但暂时不安装。

           3)Install from Local Directory:不下载安装文件,直接从本地某个含有安装文件的目录进行安装。

3.3  选择第一项,然后点击下一步:

3.4 选择要安装的目录,注意,最好不要放到有中文和空格的目录里,似乎会造成安装出问题,其它选项不用变,之后点下一步:

3.5 上一步是选择安装cygwin的目录,这个是选择你下载的安装包所在的目录,默认是你运行setup.exe的目录,直接点下一步就可以:

3.6  此时你共有三种连接方式选择:

     1) Direct Connection:直接连接。

     2) Use IE5 Settings:使用IE的连接参数设置进行连接。

     3) Use HTTP/FTP Proxy:使用HTTP或FTP代理服务器进行连接(需要输入服务器地址、端口号)。

          用户可根据自己的网络连接的实情情况进行选择,一般正常情况下,均选择第一种,也就是直接连接方式。然后再点击“下一步”,

3.7  这是选择要下载的站点,我用的是http://mirrors.kernel.org,速度感觉还挺快,选择后点下一步

3.8  此时会下载加载安装包列表

3.9  Search是可以输入你要下载的包的名称,能够快速筛选出你要下载的包。那四个单选按钮是选择下边树的样式,默认就行,不用动。View默认是Category,建议改成full显示全部包再查,省的一些包被隐藏掉。左下角那个复选框是是否隐藏过期包,默认打钩,不用管它就行,下边开始下载我们要安装的包吧,为了避免全部下载,这里列出了后面开发NDK用得着的包:autoconf2.1、automake1.10、binutils、gcc-core、gcc- g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make共12个包

3.10  然后开始选择安装这些包吧,点skip,把它变成数字版本格式,要确保Bin项变成叉号,而Src项是源码,这个就没必要选了。

3.11  下面测试一下cygwin是不是已经安装好了。

      运行cygwin,在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。

      然后依次输入gcc –v,g++ -v,make –v,gdb –v进行测试,如果都打印出版本信息和一些描述信息,非常高兴的告诉你,你的cygwin安装完成了!


4、配置NDK环境变量

为了不让大家步入我的后尘,在这里得

注意:最好不要用记事本打开.bash_profile文件,用UltraEdit打开时会有个提示“你想转换C:\cygwin\home\Administrator\.bash_profile为DOS格式吗?”呵呵!!这里千万不要点是,否则编码格式就被你改了,用cygwin运行NDK的时候就显示如下错误了:

“-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: /home/lenovo/.bash_profile: line 47: syntax error: unexpected end of file
”如果真要是这样了,解决办法:cygwin下etc\skel和etc\defaolts\etc\skel中有这个文件,重新copy此文件出来一份,然后将你改坏了的那个.bash_profile内容copy覆盖这个文件的内容,然后在此文件Copy到C:\cygwin\home\Administrator下,然后再运行就可以了。

4.1  首先找到cygwin的安装目录,找到一个home\<你的用户名>\.bash_profile文件,我的是:E:\cygwin\home\Administrator\.bash_profile,(注意:我安装的时候我的home文件夹下面神马都没有,解决 的办法:首先打开环境变量,把里面的用户变量中的HOME变量删掉,在E:\cygwin\home文件夹下建立名为Administrator的文件夹(是用户名),然后把E:\cygwin\etc\skel\.bash_profile拷贝到该文件夹下)。

2.2  打开bash_profile文件,添加NDK=/cygdrive/<你的盘符>/<android ndk 目录> 例如:NDK=/cygdrive/e/android-ndk-r5

export NDK

NDK这个名字是随便取的,为了方面以后使用方便,选个简短的名字,然后保存

3.3  打开cygwin,输入cd $NDK,如果输出上面配置的/cygdrive/e/android-ndk-r5信息,则表明环境变量设置成功了。


5、用NDK来编译程序 

5.1  现在我们用安装好的NDK来编译一个简单的程序吧,我们选择ndk自带的例子hello-jni,我的位于E:\android-ndk-r7\samples\hello-jni(根据你具体的安装位置而定),

5.2 运行cygwin,输入命令cd /cygdrive/e/android-ndk-r7/samples/hello-jni,进入到E:\android-ndk-r7\samples\hello-jni目录。

5.3 输入$NDK/ndk-build,执行成功后,它会自动生成一个libs目录,把编译生成的.so文件放在里面。($NDK是调用我们之前配置好的环境变量,ndk-build是调用ndk的编译程序)

5.4  此时去hello-jni的libs目录下看有没有生成的.so文件,如果有,你的ndk就运行正常啦!


特别说明:

cocos2d-2.0.3:运行create-android-project.bat,然后用cygwin编译后,cocos2dx-2.0创建的helloworld不生成org.cocos2dx.lib,估计新版本又有改动(解决办法:cocos2d-2.0-x-2.0.4\cocos2dx\platform\android\java\src去copy)

cocos2d-2.0.2:运行ok,产生了lib包,但是没有自带win32的HelloWorld,由于之初不会创建win32的HelloWorld

cocos2d-2.0.1:利用create-android-project.bat,然后用cygwin编译后,导入eclipse中ok,win32创建的HelloWorld也ok,推荐大家使用2.0.1的这个版本,会减少很多麻烦。


 6、下载cocos2d-x-2.1.4解压

我先说第一种:创建android版的cocos2dx的HelloWorld

6.1  用代码阅读工具打开create-android-project.bat(千万不用将它设置成默认程序打开,不然你就打不开了,倒是后就需要修改去注册表中修改,默认启动方式了。我是用UtralEdit打开的,用它打开的时候,千万不要转换其格式了噢)

6.2  设置环境变量路径:

set _CYGBIN=C:\cygwin\bin(这是我的路径,请设置成自己对应的安装路径)

set _ANDROIDTOOLS=C:\Users\Potter\Documents\work\Android\android-sdk-windows\tools(同理)

set _NDKROOT=C:\Users\Potter\Documents\work\Android\android-ndk-r8(同理)

记得保存,设置好这3个环境变量就ok了.

6.3 重新打开create-android-project.bat,(注意:如果是win7,请以管理员的身份运行,否则又会出现问题)下图所示:

输入包名,然后再输入工程名,

输入android版本id:注意的选2.2以上的版本才支持GLES2.0,不然导入eclipse会提示不支持GLES2.0的,那就是没有选2.2以上的原因,不过此时自己改成2.2的包就可以了

6.4  用cygwin编译我们产生的工程

如下图所示:



然后回车,显示如下结果:



由于我之前就已经编译过产生so了,所以会这样,如果是第一次编译会产生很多信息的,不过最后的信息和我这一样,这是你创建的工程HelloWorld就成功了。

补充:

问题:库生成的时候没有权限造成so生成失败(win7可能出现此问题)


如下图:


解决办法:运行cmd 将其路径定位到你的工程库目录下(如:D:\work\cocos2d-x-2.0.1\MyHelloWorld\proj.android\obj\local\armeabi 这是我的,你的对应)

然后执行:

takeown /f * /a /r

然后再执行:

icacls * /t /grant:r everyone:f

然后再用cygwin去生成ok

6.5  将工程导入到eclipse中...



注意:有的可能导不进来,也就是找不到工程,哈哈!那是少了两个文件,在别的工程里去copy一份过来,就能看到了。导入进来有感叹号!别急着运行,project中的clean下,然后稍等一下,工程没有感到好了,ok,这是我们运行:



若在模拟器运行一直出错,可能是模拟器不支持gles2.0导致的,用真机没有问题。