cocos2d-x 编译 安卓(android)apk文件
摘要: 一、下载Android环境 搭建Android环境需要用到Android SDK、NDK、Ant和JDK; 下载Android SDK 下载Android NDk 下载Android JDK 下载Ant 其中JDK是需要安装的,其他的都直接解压即可。
一、下载Android环境
搭建Android环境需要用到Android SDK、NDK、Ant和JDK;
其中JDK是需要安装的,其他的都直接解压即可。将SDK NDK 和ANT解压缩到同一个文件夹中,我解压后文件都放在了e:\Android文件夹下

SDK如果下载下来的adt文件那么把里面的SDK文件夹考出来,修改后

二、配置JDK
在JDK安装完毕之后,需要手动进行环境变量的配置
1、系统变量里新建JAVA_HOME变量,变量值为:C:\Program Files\Java\jdk1.8.0_05(根据自己的安装路径填写)
2、新建系统变量classpath变量,变量值为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意前面的“.”不要忘记了)
3、在系统变量path变量(已存在不用新建)添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin(注意变量值之间用“;”隔开)
环境变量的解析:
JAVA_HOME:jdk的安装路径
classpath:java加载类路径,只有类在classpath中java命令才能识别,在路径前加了个"."表示当前路径。
path:系统在任何路径下都可以识别java,javac命令。
在配置完成之后,我们打开cmd命令窗口,输入java或javac 回车,如果不是打印“java不是内部或外部命令”那就说明配置成功了。




三、配置Ant环境变量
把ant的存放路径加入系统Path变量。


四、配置cocos2dx 3.1 Android 环境关联
以上已做好准备工作,打开cocos2dx目录下的 setup.py。

输入ndk的路径。

输入sdk路径

最后输入的是 ant的路径。
OK,三个路径都已经配置完毕:

五、打包Apk
(注意:在打包apk之前需要修改proj.android/jni文件夹下的Android.mk文件 添加自己新增的CPP文件,这里的新增指的是非cocos2dx生成的项目文件(自己新增的文件)。一定要把自己新增的文件或文件夹包含进apk。)
首先我们拿官方的 cpp-tests项目来试手吧!按住shift键+鼠标右键 选择在此处打开命令窗口。

然后就可以使用 cocos compile -p android –-ap 20方式编译APK文件了(--ap 20是指定android平台,我用的是20,也有19等其他的,根据跟人下载的而定)

然后运行:cocos run -p android --ap 20
当出现:“ -waiting for device - error: ”的时候按Ctrl+C终止就可以了。
漫长的等待吧,当然这里要提醒一点3.2版本用的是 android-20,如果E:\Android\sdk\platforms目录下没有android-20 请创建一个空的。

等待完毕之后 看下这个文件夹下的 apk吧!可以安装到手机上试一下了。
如果需要把项目在真机上弄成竖屏,只需在proj.android文件夹下的AndroidManifest.xml中改一改, android:screenOrientation="landscape"(横屏),android:screenOrientation="portrait"(竖屏),它默认为横屏
六、异常处理
1、 Android platform not specified, searching a default one...
Can't find right android-platform for project :
"F:\cocos2d-x-3.1.1\tests\cpp-tests\proj.android".
The android-platform should be equal/larger than 20
如果你遇到这个问题,那么就要在

下创建一个空的android-20文件夹,这个问题坑了我很久!同时要查看命令是否是 –ap 20(双-)。
检查\proj.android目录下的project.properties是否是android-20

2、make.exe: *** No rule to make target `/home/tubuntu/game/android-ndk-r9d/sources/android/cpufeatures/cpu-features.c', needed by `obj/local/armeabi/objs/cpufeatures/cpu-features.o'. Stop.
解决办法:从后缀名来看,这个肯定是编译中间文件(可以删除)。而Make 的No rule to make target则一般说明是已经存在了,不用再编译。所以我们进入E:\cocos2d-x-3.2\Projects\HelloCpp111\proj.android\obj\local\armeabi把objs-debug文件夹下面的文件(包括文件夹)全删除。
3、make.exe:***obj/local/libcoccos2dcpp.so……
解决办法:产生这个原因的是没有在Android.mk 文件中添加自己的文件,进入E:\cocos2d-x-3.2\Projects\HelloCpp111\proj.android\jni 文件夹下打开Android.mk文件,添加自己的文件,如下图:

4、 编译时,提示找不到gcc工具链 (Couldn't find the gcc toolchain)。
这个问题也烦了我很久!去检查下ndk的配置路径!NDK_ROOT是否正确!然后3.1版本需要的NDK是最新的版本,去安卓网站下一个最新的版本r9d吧!
5、 如果遇到android api问题

找到运行进行更新,看缺哪个api就更新哪个,不过这个更新比较慢,原因google被禁了
6、出现 build.xml:932 build.xml:950 错误
这是由于你的资源文件中出现了中文命名的文件,AAPT是没有办法识别的, IOS是可以识别的,但是AAPT不行,所以最好不要使用中文命名任何文件或者文件夹。
cocos2d-x 编译 安卓(android)apk文件的更多相关文章
- 只需三步--轻松反编译Android Apk文件
安卓程序是通过java语言进行编写的,可以很容易进行反编译.很多apk文件被反编译后再二次打包,就成了自己的产品,很是流氓.下面我们来看看如何进行apk的反编译,以及常用的防反编译手段. 一.反编译A ...
- 『原』在Linux下反编译Android .apk文件 使用apktool dex2jar JD-eclipse
一.使用apktool 将 apk反编译生成程序的源代码和图片.XML配置.语言资源等文件 具体步骤: (1)下载反编译工具包:apktool 官方的打不开 http://apktool.shouji ...
- android apk 文件反编译
最近,自己坑逼的把一个android 项目修改版本的代码删除了.这个项目居然还没上传到源代码管理器.幸好还有apk文件,修改的代码也不多可以反编译一下. 1.下载 dex2jar 获取源码工具 地 ...
- Android Studio非gradleproject编译后的apk文件在哪?
非gradle的apk文件位置和gradle有一些差别,怎样找到apk文件在哪?我直接上图吧,选中project,右键: 在windows是选择"show in exlporer" ...
- android APK 文件的生成过程
步骤: 1. 用 aapt工具生成R文件aapt package -m -J gen目录 -M AndroidManifest.xml -S res目录 -I 编译版本sdk的android ...
- 读取Android APK文件签名的方法
在微信开放平台等申请API key 和secret时经常要用到apk文件签名,那么如何读取呢? 下面贴一下相关读取源码: 一共两个文件MainActivity和MD5, package com.lcg ...
- Xamarin 打包生成 Android apk 文件
Visual Studio 支持 apk 发布 Xamarin.Forms项目或Xamarin.Android项目开发完成之后需要发布.比较常规的发布方式是生成 apk 文件,微软也考虑到开发者有发布 ...
- 使用工具将安卓Android apk应用转换成Bar BlackBerry 10格式
首先要强调的是命令行工具使用起来虽然比较方便,但是对使用者有一定要求.而使用在线的网页进行转换虽然步骤比较多,但是操作比较简单.所以,对于初步接触的同学来讲,建议还是使用上一篇博文的在线转换工具比较好 ...
- IIS配置安卓下载.apk文件
前提:你的.apk文件所在路径正确,例如:www.grainnews.com.cn:8002/Attach/Images/201807/20180712091842127.apk 1.打开IIS 2. ...
随机推荐
- JS前端开发判断是否是手机端并跳转操作(小结)
JS前端开发判断是否是手机端并跳转操作(小结) 这篇文章主要介绍了JS前端开发判断是否是手机端并跳转操作,非常不错,具有参考借鉴价值,需要的朋友可以参考下 常用跳转代码 ? 1 2 3 4 5 6 7 ...
- java maven 编译文件时 有些类型文件 不存在
在pom.xml中添加如下: <build> <resources> <resource> <directory>src/main/resource&l ...
- LiveSwitch白皮书
https://www.frozenmountain.com/media/1224/frozen-mountain-software-liveswitch-white-paper.pdf —————— ...
- 用xstart远程连接linux图形用户界面
转载:https://blog.csdn.net/yabingshi_tech/article/details/51839379 双击xstart 输入:/usr/bin/xterm -ls -dis ...
- springboot aop的execution 表达式详解
Aspectj切入点语法定义 在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点" 例如定义切入点表达式 execu ...
- linux环境,通过rpm删除mysql包,报错:error reading information on service mysqld: Invalid argument
问题描述: 今天在做saltstack的练习,想要通过sls的方式,在远程进行mysql数据库的安装,发现无法通过service的方式启动数据库,然后就想给删除了重新进行安装,在通过rpm -e进行删 ...
- Python的安装以及编译器的安装
首先要想写python语言,要安装并配置python的环境,点击python下载即可,当然需要看下自己电脑适合下载的版本,64位还是32位的即可. 安装一般情况安装在C盘即可,选择添加变量的配置,完成 ...
- Piggy-Bank 完全背包
来源hdu1114 Problem Description Before ACM can do anything, a budget must be prepared and the necessar ...
- 协程greenlet、gevent
greenlet为了更好使用协程来完成多任务,python中greenlet模块对其封装,从而使得切换任务变得更加简单安装方式 pip3 install greenlet 示例代码: from gre ...
- js的小知识7
1.函数都有返回值...... 而方法的本质也是函数,所有也有返回值. Document.getElementById()返回的是获取的标签 getElementByClassName()和getEl ...