a 菜鸡儿今年大三刚刚结束,在学校的时候写了一点cocos2d-x的小项目,想移植到手机上看看效果,最后试遍了网上五花八门的教程,失败了很多次,心情简直如图有没有。
大概现在网上搜到的教程有这么几种:
1.互相抄袭。。原版都移植失败更不要说摘了一部分的了;
2.版本太老,很多教程提到的移植方法都是3.0甚至更老,有些方法让童鞋们去某个文件夹里找.py文件,按照老版的路径去新版的引擎找当然是找不到的。
3.工具问题,大家都知道现在Google已经不支持Eclipse转为android studio了,很多教程用Eclipse或者要求下载CygWin,过程会更复杂一点。
一不小心说了不少废话,现在言归正传,为了跟上时代的步伐,这里用最新的cocos2d-x3.15来进行演示吧,过程非常简只有几步,具体步骤如下:
1.下载android sdk,ndk,ant,这个我想不必多说,网上80%的教程第一个步骤都是这个,大家自行下载.
2. 首先保证自己的项目是可以在VS里编译通过的,然后再来一点其他教程里老生常谈的东西。。.mk文件的改写
路径在这里可以很清楚的看见了,然后打开Android.mk
最上面的main.cpp和它下面两个是自带的,其他Cpp是菜鸡儿写的辣鸡游戏里面的,大家把游戏里的cpp文件照葫芦画瓢的写进去保存。
然后再去这个文件夹。。路径也很清楚了,打开Android.mk再来一次。。
OK,大功告成,然后打开android Studio
点击Import project
我们的项目里都有这个Proj.android-studio ,选中点击OK就行了
现在我们的项目以及导入到安卓studio里,这里直接左键Teminal,这个就相当于Windows里的Cmd了,
好了,接下来只要一个命令就可以开始移植了,是不是很鸡儿动?
输入cocos compile -p [ ] --android-studio -m [ ] --ap [ ]
也就是下图上的命令(出现Bug请跳转到文章末尾。。)
这里解释一下 -p 平台为安卓 工具是android-studio -m 编译模式,可以是release 和 debug两种, --ap 你想要移植的安卓API版本 这里选择21 刚好对应android 5.0的LiliPop
菜鸡儿这里不推荐API版本选择过低,如果低于现在Google不支持的版本那么打包了APK以后又要花一笔功夫移植到AVD或者真机上了,所以如果第一次移植跟上图写一样就好.
输入上面的命令后直接回车吧,效果图如下:
可以看到按照指定的编译模式开始运行了,应该是需要5到7分钟的时间,大家喝杯水稍微等一下,APK马上出炉
等打包到这里以后,不需要输入要求的绝对路径,直接Ctrl+C键,然后回车(这里Ctrl+C界面是不变的,再按回车才有反应)
这里输入Y然后回车,效果图如下
好了现在童鞋们的游戏已经编译完了,也就是可以在手机上玩了,如果不想打包APK,那么数据线把手机和电脑连起来,直接在android studio点一下Run,稍等一会等gradle build 完成就可以安装到手机玩了。
3.打包APK
如果童鞋们想打包成APK给亲戚朋友炫耀一下的话,总不能把别人的手机拿过来一个一个Run吧。。所以这里再介绍一下APK的打包方法,也非常简单
android studio中依次选择build->Generate Signed APK
大家创建一个新的签名就行。。这个网上教程也多如牛毛我就不多说废话了
最后是这样,记得V1V2点选上,点击Finish就可以看到Gradle build 了,其实连接手机直接运行也是相当于打包再安装,只是这个是studio隐式打包的(还有强烈不推荐用AVD)
这样就表示打包成功,点Show in Exploer就可以直接跳转见到你打包的APK。。最后APK的安装就不用我说了吧
这个应该算是非常简单了,整个步骤就算3步吧:1.更改.mk文件 2.导入android studio 输入命令编译 3. 打包成APK。
最后说一些可能出现的Bug:
1.如果输入 cocos compile 。。。回车以后出现缺失文件如 build-cfg.json这种,去你的引擎里搜索一下这个文件,然后拷贝一份到proj.android-studio文件夹下面就OK
2.如果编译到一半,出现执行命令出错,返回值1: 这个错误,请去查找自己的包名是否数字或者非法字符开头,正确包名例子org.cocos.helloAPK,这样就没有问题了(这个问题也困扰我很久)
出现执行命令出错,返回值2:这个错误,是android.mk文件里Cpp文件没有写全
最后的友情赠送:
打包出来的APK安装上以后图标应该是cocos引擎的图标,如果想换
在这些文件夹下面,把你想要用的ICON图片放进去,但名字千万不可以改,就是说图片可以换,名字不能改还得是ICON,PNG,否则打包出错别怪我没说。。
好了整个流程都到这里了。。想不通这么简单的3步为什么被搞得那么复杂。菜鸡儿实习加班还要打字不容易,请大神不要喷我。
拒绝抄袭,从我做起