cocos2dx打包APK

首先,进行环境配置。
jdk1.8 : https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
在这里插入图片描述
ndk-r10e :https://developer.android.google.cn/ndk/downloads/revision_history

在这里插入图片描述
ant:
https://archive.apache.org/dist/ant/binaries/
在这里插入图片描述
sdk https://android-sdk.en.softonic.com/download
在这里插入图片描述
当然这不是SDK,只是一个下载SDK的工具。
最终结果如图所示:
在这里插入图片描述
下载好后,对压缩包进行解压。
现在讲一下安装的具体操作:
jdk,配置环境变量:
打开电脑的搜素框输入 编辑系统环境变量,如下
在这里插入图片描述
点击,就会弹出
在这里插入图片描述
在这里插入图片描述
新建 : JAVA_HOME
在这里插入图片描述
新建: classpath
变量值:.;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
注意,不要少了标点符号 .;
在这里插入图片描述
配置 path
新建: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
在这里插入图片描述
点击新建,然后输入:
在这里插入图片描述
ant 的环境设置
在这里插入图片描述
点击 新建 按钮,然后输入ant的路径
D:Downloads\apache-ant-1.9.7-bin\apache-ant-1.9.7\bin

将cocos2dx和android环境关联起来。就是把 ndksdkant配置到cocos2dx的环境中。
在这里插入图片描述
在这里插入图片描述
然后,输入 setup.py
在这里插入图片描述
然后,依次输入 ndk 、sdk、 ant 的路径。
接下来
在这里插入图片描述
需要将class文件夹下面的cpp文件添加进 Android.mk文件中,
在这里插入图片描述
这里,我们可以选择一个一个地添加 cpp 或 c 文件,但是文件数量多了以后就容易出现问题。
为此,建议改成

define walk
$(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))
endef
#遍历Classes目录
ALLFILES = $(call walk, $(LOCAL_PATH)/../../Classes)
FILE_LIST := hellocpp/main.cpp
#从所有文件中提取出所有的.cpp和.c文件
FILE_LIST += $(filter %.cpp %.c, $(ALLFILES))
LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)

接下来,打包APK
在项目页面,打开cmd窗口
在这里插入图片描述
输入命令 cocos compile -p android --ap android-29
解释:android-29 是你下载的SDK的名称
之后就等待游戏编译,编译成功后会出现
在这里插入图片描述
在这里插入图片描述
遇到的问题有:
1、程序包org.apache.http.message不存在,即缺少 org.apache.http包。在这里插入图片描述
方法:此时,在sdk下,找到 org.apache.http.legacy.jar 。然后
在这里插入图片描述
org.apache.http.legacy.jar 这个包放到,D:\myWorkSpace\justTest\cocos2d\cocos\platform\android\java\libs目录下面:
在这里插入图片描述
原因是: android 6.0(api 23) SDK,不再提供org.apache.http.*(只保留几个类). sdk 23版本以上的就没有这个程序包了。需要的话,要自己手动添加。
在这里插入图片描述
2、[Error] ‘to_string’ was not declared in this scope to_string()
方法:
在这里插入图片描述
将Application.mk,里面的
在这里插入图片描述
改为
APP_STL := c++_static
这里可以查看:
https://lichuachua.blog.csdn.net/article/details/103092876
3、有些windows特有的方法是无法在 android 使用的,如
sprintf_s,这个只能在windows上使用,因此打包的适合会出问题,我们需要替换成 snprintfsnprintf才是通用的方法。
在这里插入图片描述
在这里插入图片描述
因此,最好使用标准函数,如果打算跨平台的话。

可以参照的博客:
https://www.jianshu.com/p/f78719e9a638
https://blog.csdn.net/pikefish/article/details/84950344
https://blog.csdn.net/HappyKocola/article/details/73554867

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值