从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"/>

转载于:https://www.cnblogs.com/Richard-Core/p/3855130.html

Cocos2d-x 3.2 学习笔记(四)学习打包Android平台APK!相关推荐

  1. Unity3D之移植学习笔记:移植到Android平台

    首先,我们需要一台已经配置好可以开发Android应用的计算机,这里我使用的是Windows系统+Eclipse+ADT的开发环境,当然也可以使用Android Studio或者使用Mac系统都可以. ...

  2. C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻

    前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...

  3. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  4. RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决)

    RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) 参考文章: (1)RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) (2)https://www.cnblogs. ...

  5. JSP学习笔记(四十九):抛弃POI,使用iText生成Word文档

    POI操作excel的确很优秀,操作word的功能却不敢令人恭维.我们可以利用iText生成rtf文档,扩展名使用doc即可. 使用iText生成rtf,除了iText的包外,还需要额外的一个支持rt ...

  6. Ethernet/IP 学习笔记四

    Ethernet/IP 学习笔记四 EtherNet/IP Quick Start for Vendors Handbook (PUB213R0): https://www.odva.org/Port ...

  7. OpenCV学习笔记四-image的一些整体操作

    title: OpenCV学习笔记四-image的一些整体操作 categories: 编程 date: 2019-08-08 12:50:47 tags: OpenCV image的一些操作 sP4 ...

  8. 吴恩达《机器学习》学习笔记四——单变量线性回归(梯度下降法)代码

    吴恩达<机器学习>学习笔记四--单变量线性回归(梯度下降法)代码 一.问题介绍 二.解决过程及代码讲解 三.函数解释 1. pandas.read_csv()函数 2. DataFrame ...

  9. esp8266舵机驱动_arduino开发ESP8266学习笔记四—–舵机

    arduino开发ESP8266学习笔记四-–舵机 使用时发现会有ESP8266掉电的情况,应该是板上的稳压芯片的限流导致的,观测波形,发现当舵机运转时,电源线3.3V不再是稳定的3.3V,大概是在3 ...

最新文章

  1. 连接redis的linux命令,redis常见操作命令
  2. Linux chmod命令修改文件与文件夹权限的命令附实例
  3. Hadoop技术之Hadoop HA 机制学习
  4. MySQL的索引存储数据结构BTree和B+Tree的区别
  5. ETL异构数据源Datax_使用querySql_08
  6. Python案例:猜数游戏
  7. linux nginx编译安装mysql_Centos7下编译安装配置Nginx+PHP+MySql环境
  8. 读《世界是数字的》笔记
  9. emui内核支持kvm吗_Linux专题—使用kvm搭建虚拟机
  10. [AD19] 使用元器件向导为元件绘制PCB封装
  11. 【小插件】文字镂空“LSP”制作空心文字CAD
  12. CVBS视频信号解析
  13. php 输出html 总结
  14. 微纳加工技术_工艺模块_STI 浅槽隔离
  15. vs支持java吗_为什么vs不支持java
  16. 分析力学复习笔记(更新中)
  17. 网页版五子棋实时对战系统
  18. 天耀18期 - 10.字符串常用方法【作业】
  19. vue页面跳转打开新的窗口
  20. 百度人脸识别实现方法

热门文章

  1. SQL基础用法总结(以前复习的时候放在自己的新浪博客上)
  2. swf文件在线预览 html,在线浏览swf文件
  3. Java 中的进程与线程的实现
  4. linux添加启动脚本文件夹,linux – 将脚本中的符号链接添加到rc.d文件夹中以在系统启动期间启动进程...
  5. 字符串上的简单动态规划
  6. 《Python Cookbook 3rd》笔记(1.19):转换并同时计算数据
  7. pythonsklearn乳腺癌数据集_Python的Sklearn库中的数据集
  8. 密码学专题 数据填充的方式|序列加密的方式
  9. 将读写锁放到共享内存,实现进程之间对于同一文件的读写操作
  10. C++读取文件,将文件内容读到string字符串里面