cocos2d-x 移植android平台及适配问题杂谈

本文详细介绍了如何将使用cocos2d-x开发的游戏从Windows平台移植到Android,包括修改create-android-project.bat脚本,设置环境变量,调整Android.mk文件,解决Cocos2dxActivity找不到的问题,以及屏幕适配和运行注意事项。适合2.0.4版本,移植过程涉及NDK、SDK和Eclipse的使用。

首先是参考资料

老G的:cocos2d-x学习笔记06:如何将win32移植到android

日月之明的:Cocos2d-x学习之windows 7 android环境搭建


我的环境  XP+VS2010+cocos2d-2.0-x-2.0.4+Eclipse+Android SDK+CygWin

Android平台方面的环境如果你还没配置可参考上面的环境搭建教程,非常详细,相信大家能看懂


这章主要讲讲关于在win平台开发好cocos2d-x的游戏后如何移植到Android平台,由于cocos2d-x各个版本的不同,造成移植的方法或多或少存在一些差异,所以老G的文章在大意上是正确的,但一些细节却因为版本问题和我做的不一样。我也是看着资料摸索过来的,以下讲的内容我只能保证适应2.0.4版本,其他版本我就不敢说啦。


1、用文本编辑器打开cocos2d-x目录下的create-android-project.bat,我这里用的是Notepad++


2、编辑这三个变量,分别是Cygwin、Android SDK和NDK的目录,这个很简单



3、双击运行cocos2d-x目录下的create-android-project.bat,首先输入包名,我用最近自己写的C++版MoonWarriors做例子


4、输入包名和项目名,按Android的习惯,包名一般全小写



5、选择版本,我选定是6,2.2的,据我同事说如今2.1的用户其实已经非常少了

程序运行完毕之后会帮我们创建3个文件夹

proj.android放的是安卓的项目,Classes是放我们写的CPP文件和头文件的,Resources放资源文件


6、把Classes和Resources文件夹里的所有东西删除


7、把类文件和头文件考入Classes下,资源文件考入Resources目录下,其中main.cpp和main.h不需要考,使用资源时C++不区分大小写,可是Android是区分的,如果名字大小写不一致的话在android机上运行时会提示找不到资源文件,这点要注意





8、修改项目MoonWarriors\proj.android\jni下的Android.mk文件

要修改的地方如下
LOCAL_SRC_FILES:在这里加入你Classes下的cpp文件
LOCAL_C_INCLUDES:在这里添加你使用的库的h文件,如果有的话
LOCAL_WHOLE_STATIC_LIBRARIES:在这里添加你使用的库的lib文件,如果有的话



9、运行cygwin,进入MoonWarriors\proj.android目录



10、输入命令./build_native.sh


cygwin就会为我们编译文件了,这个过程需要耗费一些时间


如果出现please define ndk_root,请参考下面解决方法


在命令行中进入cygwin目录,并执行cygwin.bat,如果你不是用Administrator账号登录的系统,那么会在cygwin\home\文件夹中生成一个以你的登录名命名的新的文件夹。


修改新生成文件夹中的“.bash_profile ”文件,用UE或editplus等文本编辑器打开,在最后增加: (e/android-ndk-r8-windows/android-ndk-r8是安装ndk的路径)


NDK_ROOT=/cygdrive/e/android-ndk-r8-windows/android-ndk-r8


export NDK_ROOT


然后保存关闭。


11、打开eclipse,选择file->import,选择Existing Projects into Workspace


选择项目路径,点击Finish就可完成导入。


如果出现Cocos2dxActivity,org.cocos2dx.lib.Cocos2dxActivity等文件找不到的问题,请参考下面解决方法:


复制 ***\cocos2dx\platform\android\java\src\ (***为cocos2d-x更目录) 到你android项目中的src文件夹中,这样就又有一个麻烦问题,是不是每次创建都要复制呢,答案当然是否定的,来看一劳永逸的方法,定位 (cocos2d-x根目录)\template\android\,用文本文件打开 copy_files.sh,找到 copy_src_and_jni() 函数,添加入下代码


cp -rf $COCOSJAVALIB_ROOT/src $APP_DIR/proj.android



12、右击项目,run as->android application,选择合适的模拟器即可跑起我们的项目

cocos2d-x在2.0以后由于OPGELES的关系不支持4.0以下的模拟器,所以建议还是用真机调试,下面我我运行在小米1S上的情形



至此移植工作就已经全部完成。


下面说点我的小经验:

1、win32的版本默认是横屏的,如果想要竖屏,可在eclipse中打开你的项目,找到AndroidManifest.xml,修改android:screenOrientation属性,

portrait是竖屏

landscape是横屏

2、关于屏幕适配,可查看我转载的一篇文章,讲得非常详细  cocos2d-x 屏幕适配原理分析


文章所写的东西只是我自己的理解,如果哪里出现错误,敬请斧正。

您可以留言、微博私聊我或Email我


我的微博:http://weibo.com/u/2007282737

我的Email:pengkailiao@gmail.com


本文所有内容均为原创,转载请注明出处 lpk:http://blog.youkuaiyun.com/lpkkk ,谢谢!



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值