Cocos2d-x 3.2 打包Android平台APK
(转自:http://www.cnblogs.com/Richard-Core/p/3855130.html)
从cocos2dx 3.2项目打包成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭建一次之后,以后就会非常快捷!
(涉及到3.1.1版本的,请自动对应3.2版本,3.x版本的环境搭建都是一样的)
一、下载Android环境
搭建Android环境需要用到Android SDK、NDK、Ant和JDK;
Android SDK下载http://developer.android.com/sdk/index.html
Android NDk下载http://developer.android.com/tools/sdk/ndk/index.html
Android JDK下载http://www.oracle.com/technetwork/java/javase/downloads/index.html
Ant下载http://ant.apache.org/bindownload.cgi
其中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
然后就可以在项目目录下使用 cocos compile -p android方式编译APK文件了。
注意:在打包apk之前需要修改proj.android/jni文件夹下的Android.mk文件 添加自己新增的CPP文件,这里的新增指的是非cocos2dx生成的项目文件(自己新增的文件)。一定要把自己新增的文件或文件夹包含进apk。
首先我们拿官方的 cpp-tests项目来试手吧!
按住shift键+鼠标右键 选择在此处打开命令窗口。

然后就可以使用 cocos compile -p android --ap 20方式编译APK文件了(--ap 20是指定android平台)

漫长的等待吧,当然这里要提醒一点3.1版本用的是 android-20,如果E:\Android\sdk\platforms目录下没有android-20 请创建一个空的。

等待完毕之后 看下这个文件夹下的 apk吧!可以安装到手机上试一下了。
六、异常处理:(我會不定時的更新遇到的問題,讓大家都不走彎路)
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、 编译时,提示找不到gcc工具链 (Couldn't find the gcc toolchain)。
这个问题也烦了我很久!去检查下ndk的配置路径!NDK_ROOT是否正确!然后3.1版本需要的NDK是最新的版本,
去安卓网站http://developer.android.com/tools/sdk/ndk/index.html#Installing下一个最新的版本r9d吧!
3、 如果遇到android api问题

找到运行进行更新,看缺哪个api就更新哪个,不过这个更新比较慢……原因google被禁……
4、Android NDK: Invalid APP_STL value: c++_static 這個要修改jni/Application.mk
APP_STL := c++_static
NDK_TOOLCHAIN_VERSION=clang
APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -std=c++11 -fsigned-char
APP_LDFLAGS := -latomic
改成:
APP_STL := gnustl_static
# add -Wno-literal-suffix to avoid warning: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
# in NDK_ROOT/arch-arm/usr/include/sys/cdefs_elf.h:35:28: when using ndk-r9
APP_CPPFLAGS := -frtti -DCOCOS2D_DEBUG=1 -std=c++11 -Wno-literal-suffix -fsigned-char
5、Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8
这是因为NDK指定的版本与minSdkVersion不一致的问题,修改AndroidManifest.xml文件 其中android:minSdkVersion修改為<uses-sdk android:minSdkVersion="20"/>
-----------------------------------------------------------------
本人还遇到另一个问题,就是用手机安装apk文件后是横屏显示的,如果想要竖屏显示,需要将AndroidManifest.xml中的“android:screenOrientation”设置为portrait即可。
Cocos2d-x 3.2 打包Android平台APK的更多相关文章
- cocos2d-x3.9利用cocos引擎一键打包Android平台APK(C++小白教程)
链接地址:http://www.cocoachina.com/bbs/read.php?tid=333937 cocos2d-x3.9利用cocos引擎一键打包Android平台APK(C++小白教程 ...
- Cocos2d-x 3.2 学习笔记(四)学习打包Android平台APK!
从cocos2dx 3.2项目打包成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭建一次之后,以后就会非常快捷! (涉及到3.1.1版本的,请自动对应3.2版本,3.x版本的环境搭建都是一样的) ...
- cocos 3.0 一键打包android平台应该注意的细节
cocos2d-x 移植越来越便捷,走到cocos2d-x-3.0rc2,能够说移植已经非常完好了,我们仅仅要进行适当的适配,cocos能够直接帮助我们生成apk 我网络不好无法上传图片:(无图无捷豹 ...
- uni-app&H5&Android混合开发一 || 最全面的uni-app离线打包Android平台教程
前言: 为什么会写这么一个教程,因为很久之前做过一个对接银行POS我们的系统是使用的H5开发的app应用.但是假如对结果银行相关业务的小伙伴应该都清楚,银行的业务相对于其他的对接方而言安全性比较高,而 ...
- Unity打包android的apk与数据包.obb分离和apk签名
那么,通过以上图片.我相信大多数人已经知道怎么创建了,apk签名比較简单,假设之前没有签名文件.那么选择图中的Create New Keystore然后在以下两个password框中输入passwor ...
- Android平台APK分析工具包androguard的部署使用和原理分析
原创文章,转载请注明出处,谢谢. Android应用程序分析主要有静态分析和动态分析两种,常见的静态分析工具是Apktool.dex2jar以及jdgui.今天突然主要到Google code上有个叫 ...
- Unity打包Android平台AssetBundle脚本
注意,BuildTarget tagetPlatform参数为BuildTarget.Android using UnityEngine; using UnityEditor; public clas ...
- Ant打包Android代码生成apk文件
可參考下面,实现一套代码不同渠道的打包 http://blog.csdn.net/liuhe688/article/details/6679879 http://cnn237111.blog.51ct ...
- Unity20172.0 Android平台打包
Android SDK及Jdk百度网盘下载链接:https://pan.baidu.com/s/1dFbEmdz 密码:pt7b Unity20172.0 Android平台打包 简介说明: 第一步: ...
随机推荐
- 7、mysql高级特性
7.1.分区表 7.1.1 分区表的原理 7.1.2分区表的类型 7.1.3如何使用分区表 7.1.4什么情况下出问题 7.1.5查询优化 使用explain 来分析sql使用的分区表 7.1.6合并 ...
- 欧几里得算法(及扩展)&&快速幂(二分+位运算)
最近在二中苦逼地上课,天天听数论(当然听不懂) 但是,简单的还是懂一点的 1.欧几里得算法 说得这么高级干什么,gcd入门一个月的人都会吧,还需要BB? 证明可参照其他博客(不会),主要就是gcd(a ...
- RabbitMQ 汇总
<RabbitMQ Tutorial>译文 第 1 章 简介 <RabbitMQ Tutorial>译文 第 2 章 工作队列 <RabbitMQ Tutorial> ...
- Java 利用递归删除文件以及文件夹
直接上代码: /** * 递归删除 文件/文件夹 * * @param file */ public static void deleteFile(File file) { System.out.pr ...
- 把Excel的数据导入到数据库
将Excel作为数据源,将数据导入数据库,是SSIS的一个简单的应用,下图是示例Excel,数据列是code和name 第一部分,Excel中的数据类型是数值类型 1,使用SSDT创建一个packag ...
- nvm管理不同版本的node和npm
写在前面 nvm(nodejs version manager)是nodejs的管理工具,如果你需要快速更新node版本,并且不覆盖之前的版本:或者想要在不同的node版本之间进行切换:使用nvm来安 ...
- stl源码剖析 详细学习笔记 配接器
//---------------------------15/04/03---------------------------- /* 配接器概述: 1:adapter是一种设计模式:将一个clas ...
- laraver框架学习------工厂模型填充测试数据
在laravel中填充数据有几种方式.一种是Seeder,另一种是工厂模式进行的填充. 工厂模式可以实现大批量的填充数据,数据的量可以自定义.这也为后续的软件测试提供方便. 在laravel框架有da ...
- 在Microsoft Dynamic 365/2016环境使用LinqPad查询数据(不使用linqpad Microsoft Dynamic 365 Driver)
在Microsoft Dynamic 365/2016环境使用LinqPad查询数据 老规矩,先上效果图: 实体集合: 实体属性: 属性值: 查询出的结果可以导出的格式: 操作步骤: 1.下载Lin ...
- jupyter notebook 更改工作环境和浏览器
转载自:https://blog.csdn.net/u011141114/article/details/78556227 1 修改默认目录 最近刚刚开始学习Python,比较好的一个IDE就是jup ...