(转自: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的更多相关文章

  1. cocos2d-x3.9利用cocos引擎一键打包Android平台APK(C++小白教程)

    链接地址:http://www.cocoachina.com/bbs/read.php?tid=333937 cocos2d-x3.9利用cocos引擎一键打包Android平台APK(C++小白教程 ...

  2. Cocos2d-x 3.2 学习笔记(四)学习打包Android平台APK!

    从cocos2dx 3.2项目打包成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭建一次之后,以后就会非常快捷! (涉及到3.1.1版本的,请自动对应3.2版本,3.x版本的环境搭建都是一样的) ...

  3. cocos 3.0 一键打包android平台应该注意的细节

    cocos2d-x 移植越来越便捷,走到cocos2d-x-3.0rc2,能够说移植已经非常完好了,我们仅仅要进行适当的适配,cocos能够直接帮助我们生成apk 我网络不好无法上传图片:(无图无捷豹 ...

  4. uni-app&H5&Android混合开发一 || 最全面的uni-app离线打包Android平台教程

    前言: 为什么会写这么一个教程,因为很久之前做过一个对接银行POS我们的系统是使用的H5开发的app应用.但是假如对结果银行相关业务的小伙伴应该都清楚,银行的业务相对于其他的对接方而言安全性比较高,而 ...

  5. Unity打包android的apk与数据包.obb分离和apk签名

    那么,通过以上图片.我相信大多数人已经知道怎么创建了,apk签名比較简单,假设之前没有签名文件.那么选择图中的Create New Keystore然后在以下两个password框中输入passwor ...

  6. Android平台APK分析工具包androguard的部署使用和原理分析

    原创文章,转载请注明出处,谢谢. Android应用程序分析主要有静态分析和动态分析两种,常见的静态分析工具是Apktool.dex2jar以及jdgui.今天突然主要到Google code上有个叫 ...

  7. Unity打包Android平台AssetBundle脚本

    注意,BuildTarget tagetPlatform参数为BuildTarget.Android using UnityEngine; using UnityEditor; public clas ...

  8. Ant打包Android代码生成apk文件

    可參考下面,实现一套代码不同渠道的打包 http://blog.csdn.net/liuhe688/article/details/6679879 http://cnn237111.blog.51ct ...

  9. Unity20172.0 Android平台打包

    Android SDK及Jdk百度网盘下载链接:https://pan.baidu.com/s/1dFbEmdz 密码:pt7b Unity20172.0 Android平台打包 简介说明: 第一步: ...

随机推荐

  1. 20155206 Exp5 MSF基础应用

    20155206 Exp5 MSF基础应用 基础问题 . 用自己的话解释什么是exploit,payload,encode . exploit:这个词本身只是利用,但是它在黑客眼里就是漏洞利用.有漏洞 ...

  2. WPF之Manipulation

    原文:WPF之Manipulation 需求:现,在窗口下有一个StackPanel控件. 1.可以拖动. 2.可以展开及收缩(不仅仅可以拖动还可以点击) 3.窗口向坐标轴一样分四个象限,在不同的区域 ...

  3. javascript典型bug——错误的闭包

    昨天QT给我的一个功能提了一个bug.大概意思就是说,一段在不同位置都会被调用的代码,在A处被调用的时候,似乎会对其他调用的地方产生影响. 我仔细debug了半天,终于找到了原因.简化过的代码如下: ...

  4. Js_图片轮换

    本文介绍用javascript制作图片轮换效果,原理很简单,就是设置延时执行一个切换函数,函数里面是先设置下面的缩略图列表的白框样式,再设置上面大图的src属性,在IE中显示很正常,可是在FF中会有变 ...

  5. pandas 初识(二)

    基本统计 pivot_table(数据透视表 ): 使用appfunc, 按不同index分类统计各特征values的值 df.pivot_table(index="Pclass" ...

  6. liunx总结题

    一.            简述什么是Linux内核,这个学期学了Linux课程的哪些内容.(10分) Linux内核诞生于1991年,由芬兰学生Linus Torvalds(林纳斯.托瓦斯)发起,那 ...

  7. ecCodes 学习 利用ecCodes fortran90 api对GRIB文件进行读写

    参考 https://www.ecmwf.int/assets/elearning/eccodes/eccodes2/story_html5.htmlhttps://confluence.ecmwf. ...

  8. Notepad++常用插件

    Notepad++常用插件 1.CCompletion 进行文本的方法查找的工具. 会点击Ccompletion中的CCompletion菜单,就会出现菜单选择框 2.Compare 进行文本比较的工 ...

  9. 在WebGL场景中建立游戏规则

    在前三篇文章的基础上,为基于Babylon.js的WebGL场景添加了类似战棋游戏的基本操作流程,包括从手中选择单位放入棋盘.显示单位具有的技能.选择技能.不同单位通过技能进行交互.处理交互结果以及进 ...

  10. React笔记-事件分发

    事件分发 之前讲述了事件如何绑定在document上,那么具体事件触发的时候是如何分发到具体的监听者呢?我们接着上次注册的事件代理看.当我点击update counter按钮时,触发注册的click事 ...