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

被折叠的 条评论
为什么被折叠?



