接触cocos2dx已经有大半年时间了,只是深感这个引擎的强大和方便,在游戏渲染上有着很强的优化能力,今天就提及一下cocos2dx在android移植上的一些方法和问题
在windows上传统的方法是在首先先在vs中将游戏项目写好,然后再移植到android上,刚接触cocos2dx的同学可能会在新建类的时候比较纳闷,在网上搜集到的一些资料上都写着Classes里面存放着.h和.cpp文件,但是在vs的include中新建一个类中并没有将这两个文件对应放在Class文件夹下,这个并不用担心,不影响编译运行,至于要在新建androud项目的时候把proj.win32文件夹下自己创建的.h和.cpp取出即可。
我们首先需要Cygwin工具,安装中需要注意的地方我就不说了,网上的资料都会强调到,在安装完成后,首先需要做的是配置一下Cygwin的环境,定位到C:\cygwin\home\wangdi目录下,即cygwin的安装目录下的文件夹,wangdi是我电脑的计算机名,你们的跟我肯定不一样,在这个文件下会有四个文件,如图
用notepad++打开,然后在最后一行添加这样两行话
NDK_ROOT=/cygdrive/e/android-ndk-r8d-windows/android-ndk-r8d
export NDK_ROOT
NDK_ROOT后面的地址是你java ndk所在的目录地址
这样第一步算完成了
接着打开你cocos2dx的文件夹,找到这样一个文件 create-android-project.bat,用notepad++打开,会有如下的几行
把CYGBIN,ANDROIDTOOL,NDKROOT三个绝对地址填写好,相信我写的地址应该能看懂应该填写的什么内容吧,第一个是cygwin的bin文件夹位置,第二个是android的sdk的tool的位置,第三个是ndlk的位置
设置好之后就可以点击该文件,然后就可以建自己的android项目了,会弹出命令行的界面,第一个输入项目的包名,第二个输入项目名称,之后就会列出所有你电脑中可用的sdk版本号,有些说2.1以上的sdk就可以了,但是实际2.1的版本编译出来导入最后会报错,具体原因我也不清楚,我同学编译出来也是错误,2.2就可以了,所以选2.2吧,其他版本我就没试过了,毕竟版本低些,适配的机子就会多些,等提示“按任意键继续”就建好了,可以在cocos2dx的根目录下可以看到自己建的项目,点进去后和vs下的项目文件夹分类是一样的,就是其中改成pro.android了,把资源文件和代码文件相对应放进来就好了,之前我说过pro.win32下的头文件和cpp文件要放到android项目这里的Classes下就可以了
我们在使用cygwin编译c++代码前,需要进入proj.android\jni文件下打开Android.mk文件,在这里添加你自己新建的类,不然编译会报错,如图我自己建的项目可能有这些自己写的类,直接在后面添加即可,HelloWorld.cpp自带的那个如果你不使用了,可以删除,当然你在Classes文件夹下也不能出现这个cpp,换句话说,这里添加的就是你Classes文件下的cpp文件,注意,cocos2dx的扩展包不用添加,比如你可能后期会用到CCScrollView等
如果不用HelloWorld.cpp文件,你还需要打开jni下面的hellocpp里面的main.cpp,把里面涉及到的HelloWorld.h头文件这句话删除,至此就可以开始真正编译了
打开cygwin命令,cd定位到pro.android目录下,输入"./build_native“就会开始进行编译了,第一次编译会很慢,会把cocos2dx里面的所有涉及的类都编译一次,所以至少要有5分钟以上的时间,就慢慢等吧,以后编译就只会重新编译你修改过的文件
当控制台出现如下的字幕时
生成了libgame.so文件,同时make:Leaving directory就可以了
接着打开eclipse导入你的项目,肯定会出现红叉,别担心,打开cocos2dx根文件夹到这里\cocos2d-2.1beta3-x-2.1.1\cocos2dx\platform\android\java\src
把org文件夹复制粘贴到eclipse你的项目下的src文件夹下,好了红叉就没了,然后打包成apk真机运行一下就看到你的游戏啦
希望能和更多的cocos2dx有道之人一起交流