cocos3.10游戏移植到安卓平台教程(c++版本)

流程简介
现在Cocos3.10移植游戏到安卓平台还是比较简化了,你只需要下载好SDK,JDK,NDK,ANT,配置好坏境变量,安装好JDK。再更改一下android.MK文件,你就直接可以进行编译了,当然编译当中也许会因为C++平台原因,NDK用的G++编译器,和VS的不一样,所以会出比较多的错误,只要你有耐心,就可以最终编译成功。

  1. 配置环境
    首先到网上下载SDK,JDK,NDK,ANT,如果你是懒得动类型,就到下面的链接去下载吧。
    链接:http://pan.baidu.com/s/1gfEviLX 密码:cy06
    (1)下载后解压将SDK从打包文件里面提取出来,然后找个文件夹把SDK,ANT,NDK都放在一起吧。然后现在需要安装的只有JDK,安装好JDK以后请大家自动搜索JDK配置坏境,这里我就不给大家传送门了。
    (2)如果你已经确认好JDK坏境配置完毕,现在进入你下载的cocos2d进入到如下路径:
    这里写图片描述
    最好不要直接双击打开setup文件,这样在文件运行完后会自动关闭dos窗口,不能看到输出信息。我们在这个文件路径下面按住shift+鼠标右键,然后在此运行命令窗口,输入setup.py来执行此文件。
    (3)按照dos窗口的指示逐个输入SDK,NDK,ANT的路径,下面是已经输入好的情况:
    这里写图片描述

    2.更改Android.mk文件

    找到你的游戏项目,打开这个路径D:\CocosToAndriod..\proj.android\jni,中间有些我自己的路径省略了,就是你自己游戏项目的proj.android\jni文件夹。对移植安卓有一点印象的朋友知道我们在移植的时候需要在MK文件里面添加我们的类名,我记得原来是一个一个手动添加的,现在好像3.0以上的版本不需要了,有更快捷的办法。直接将MK文件里面的代码替换成如下:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos)
LOCAL_MODULE := cocos2dcpp_shared
LOCAL_MODULE_FILENAME := libcocos2dcpp
FILE_LIST := hellocpp/main.cpp    
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)    
LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)   
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
# _COCOS_HEADER_ANDROID_BEGIN
# _COCOS_HEADER_ANDROID_END
LOCAL_STATIC_LIBRARIES := cocos2dx_static
# _COCOS_LIB_ANDROID_BEGIN
# _COCOS_LIB_ANDROID_END
include $(BUILD_SHARED_LIBRARY)
$(call import-module,.)
# _COCOS_LIB_IMPORT_ANDROID_BEGIN
# _COCOS_LIB_IMPORT_ANDROID_END

你可以大致的对比一下原来的MK文件,其实就是添加了几句代码直接将Class文件里面的类文件全部添加进来了。如果你还在游戏项目中使用了iconv库,那么使用下面的代码,(iconv库,不能在使用win32自带的,要到网上下载一个andriod版本的。

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external)
$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos)
LOCAL_MODULE := cocos2dcpp_shared
LOCAL_MODULE_FILENAME := libcocos2dcpp
FILE_LIST := hellocpp/main.cpp    
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)    
LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)   
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../cocos2d/external/iconv/include
# _COCOS_HEADER_ANDROID_BEGIN
# _COCOS_HEADER_ANDROID_END
LOCAL_STATIC_LIBRARIES := cocos2dx_static
LOCAL_STATIC_LIBRARIES += iconv_static
# _COCOS_LIB_ANDROID_BEGIN
# _COCOS_LIB_ANDROID_END
include $(BUILD_SHARED_LIBRARY)
$(call import-module,iconv)
$(call import-module,.)
# _COCOS_LIB_IMPORT_ANDROID_BEGIN
# _COCOS_LIB_IMPORT_ANDROID_END

从这个代码你也可以学习到如何添加第三方库,然后将他们导入到你的安卓项目中。
下面需要注意的是:
如果你的游戏项目当中运用了很多C11的语法或者C14的语法,那么请打开AndroidAplication.mk文件
如下:
这里写图片描述
一定要加图中的-std=c++14 或者-std=c++11,干脆就直接写++14吧··,反正我当时同事用到了14的东西,然后我始终编译有错,尼玛后面才发现他能编译通过是把这里修改成了++14,写++14应该就默认包含了11了。

3 用build_native.py创建APK文件

如果你上面准备工作都做好了,那么恭喜你,你将进入最后一步,但也是最蛋疼的一步。运行这个目录下面的build_native.py文件 (D:\CocosToAndriod\cplus\proj.android,我的路径忽略到,重点是找到proj.android文件夹)。
跟我上面一样的方法,在此处打开命令行,然后运行build_native.py文件。就会直接将你的游戏进行APK打包啦,打包后会放在一个路径,如果你打包成功你会看到输出路径。如果你并没有那么容易的打包,而是报了很多错····那么如下:
(1) 以为VS使用的C++编译器,和安卓使用的G++编译器是不同的,所以你在VS能编译过的东西不一定能在G++下编译通过,所以会报很多语法错误,特别是关于const的运用,以及左值引用,反正会出现各种语法错误,你需要一一去查找。语法错误全部找出来,最后编译成功,那么你会得到下面图片!
这里写图片描述

结语:
因为之前看网上好多贴子都太老了,而且流程感觉不是很靠谱,就记录了下这次的移植流程,希望能帮到正在使用3.x版本的朋友。最蛋疼的就是编译APK文件了,需要大大的耐心,所以加油吧.

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值