Windows平台Android下2.1版cocos2d-x的环境搭建

来源:互联网 发布:php入门书籍 知乎 编辑:程序博客网 时间:2024/06/08 11:29


上周浪费了整整一个多星期的时间搭建环境,其中遇到的各种问题真是万分纠结,自己对c的东西也不太熟悉,网上好多帖子说不用cygwin可以搭建,但是我是没搭建出来,可能是版本的原因,现在将自己搭配cocos2d-x环境的经验总结一下,有喜欢的朋友可以大家探讨一下。

我自己搭配的环境如下:
平台:windows 7
ndk版本:android-ndk-r8e
cocosd-x版本:cocos2d-2.1rc0-x-2.1.2

Eclipse、ADT、SDK的搭建这里就不浪费时间去一一叙述了,网上可以找到很多的帖子。

在上述条件都搭配好的情况下,我们开始cocos2d-x的环境搭建

一.下载安装Android NDK
链接地址:http://developer.android.com/tools/sdk/ndk/index.html
下载之后直接解压即可,一会我们再修改

二.下载安装cygwin
链接地址:http://www.cygwin.com 下载setup.exe
1、 然后双击运行吧,运行后你将看到安装向导界面:
2、 点击下一步
此时让你选择安装方式:
1)Install from Internet:直接从Internet上下载并立即安装(安装完成后,下载好的安装文件并不会被删除,而是仍然被保留,以便下次再安装)。
2)Download Without Installing:只是将安装文件下载到本地,但暂时不安装。
3)Install from Local Directory:不下载安装文件,直接从本地某个含有安装文件的目录进行安装。

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

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

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

6、此时你共有三种连接方式选择:
1) Direct Connection:直接连接。
2) Use IE5 Settings:使用IE的连接参数设置进行连接。
3) Use HTTP/FTP Proxy:使用HTTP或FTP代理服务器进行连接(需要输入服务器地址、端口号)。
用户可根据自己的网络连接的实情情况进行选择,一般正常情况下,均选择第一种,也就是直接连接方式。然后再点击“下一步”,

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

8、 此时会下载加载安装包列表
安装时,在 Cygwin 默认安装配置没有安装gcc 编译器,我们必须用到的 Devel 类中的四个
组件包,如果嫌找起来过于麻烦,可将Devel 类从Default改为Install 全部安装也可,四个组件
包为:
1. binutils组件
cyg1.png

  1. gcc 组件
    cyg2.png

  2. gcc - mingw组件
    cyg3.png

  3. gdb 组件
    cyg4.png

  4. make 组件
    cyg5.png

安装完成后,运行cygwin,在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常,效果如下图:
cyg6.png

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

三.配置NDK环境变量
为了不让大家步入我的后尘,在这里得注意:最好不要用记事本打开.bash_profile文件,用EditPlus等编辑工具打开编辑,因为该文件的编码格式默认为ASNI,如果改变了它的编码格式会导致后续报错。

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

2、 打开bash_profile文件,添加NDK=/cygdrive/<你的盘符>/ 例如:NDK=/cygdrive/f/android-ndk-r8e
export NDK

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

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

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

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

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

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

五.下载cocos2d-x-2.0.1解压
链接地址:http://cocos2d-x.org/projects/cocos2d-x/wiki/Download
下载后解压出来
1. 进入cocos2d- x 目录,找到create- android- project.bat 文件,使用EditPlus等编辑工具打开进
行编辑,修改如下项目:
1) 找到set _CYGBIN= 在等号后面填入本机cygwin/bin 目录,如:C : cygwin bin
2) 找到set _ANDROIDTOOLS= 在等号后面填入本机Android/tools 目录,如:
D: Android android- sdk - windows tools
3) 找到set _NDKROOT= 在等号后面填入本机NDK目录,如:
D: Android android-ndk-r8e
修改完成后保存关闭。

2.配置本机环境变量(又是LZ的血泪史啊T_T)
右键我的电脑->点击属性->高级系统设置->点击环境变量
在系统变量中新建 变量名为:NDK_ROOT,变量值为:你的NDK路径,例:F:android-ndk-r8e

  1. 重新运行cocos2d- x 下的create- android- profect.bat 文件, 首先输入项目的包名,如:com.MyGame 。 回车后会要求输入工程名,最好和目录名一致,如:MyGame。 回车后会要求选择AndroidSDK的版本号,一般选择2.1 以上版本,我选的是31 回车后会在cocos2d- x 目录中生成一个MyGame的工程目录,工程目录中含有android、Classes、 Resource 三个子目录。

4、用cygwin编译我们产生的工程
1)定位到工程目录下,如下图
cyg7.png

2)执行./build_native.sh命令,如下图
cyg8.png

如果是第一次编译会产生很多信息,最后查看MyGame/proj.android/libs/armeabi文件夹下生成了.so文件,证明编译成功。

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

解决办法:运行cmd 将其路径定位到你的工程库目录下(如:D:workcocos2d-x-2.0.1MyHelloWorldproj.androidobjlocalarmeabi 这是我的,你的对应)

然后执行: takeown /f * /a /r
然后再执行: icacls * /t /grant:r everyone:f

六.把工程导入Eclipse中
1)打开Eclipse,选择File->New->Project->Android->Android Project from Existing Code,导入MyGame下的proj.android文件夹,如下图
ec1.png
导入后会看到工程报错,因为未导入cocos2d-x的jar包

2)再次选择Eclipse的File -> New -> Project… -> Android -> Android Project from Existing Code,这一次在Root Directory里面,选择cocos2d-2.0-x-2.0.3cocos2dxplatformandroidjava所在的路径:

3)右键之前导入的MyGame工程,选择Properties -> Android;拉到最下面
ec2.png

如果右下方你的Library列表里有个项目前面有个红叉,选中,Remove。然后Add:
ec3.png

然后点eclipse的Project->clean ,工程不报错了,可以在真机运行了(PS:因为OPENGL的关系,想要在模拟器上运行还需要进行一些设置,以下的LZ自己没做,想要修改的可以去网上查阅下资料)

1350555600_2028.jpg

0 0
原创粉丝点击