这一篇讲的是用 Cocos Creator 编译器打包 Android APP 的时候遇到的一些问题,虽然说打包的过程不是很复杂,但是在其中还是会遇到各式各样的坑。

我们将项目用CCC(Cocos Creator)编译器打包的时候,肯定是要先配置一下本机的开发环境,我这里主要是打包成 Android APP 的时候需要依赖的开发环境。

下载 Java SDK(JDK)

在编译 Android 工程的时候需要在本地电脑上有完整的 Java SDK 工具,如果没有这个工具可以到下面的地址下载:

Java SE Development Kit 8 Downloads

下载的时候注意选择一下和本机匹配的操作系统和架构,下载完成后运行安装就可以了。

安装后检查 Java 环境就是在命令行工具中输入以下代码来查看:

  java -version

输出显示结果为上图,则没有问题,如果系统中使用的是JRE则需要安装 JAVA SE 运行环境

检查之后,我们还需要确认下本机的环境变量中是否包含 JAVA_HOME 。没有配置环境的可以通过右键点击我的电脑,选择属性,打开高级选项卡来查看和修改环境变量。

变量值就是安装Java的路径,修改完成之后需要重启一下电脑才会生效。

依照官方文档,下载 JDK 后是通过 Android Studio 下载所需的 SDK 和 NDK。当然也可以自己去独自下载这两个工具: SDKNDK  。下载之后就是运行安装就可以了。

我们这边就先讲讲从 Android Studio 中去下载,首先就是 安装 Android Studio  。安装的过程中直接点下一步,下一步就可以了。

安装完成之后,运行打开一个新的文件就可以了,进入主界面之后。点击主界面右上角的一个是下载的图标去下载安装我们所需的工具。

点开之后进入分页栏,根据自己想支持的手机版本去下载

在 SDK Tools 分页栏,首先勾选右下角的 Show Package Details,显示分版本的工具选择。

在 Android SDK Build-Tools 里,选择最新的 build tools 版本。

勾选 Android SDK Platform-Tools, Android SDK Tools 和 Android Support Library

勾选 NDK,确保版本在 14 以上(推荐使用 r16)。NDK-r18 已经移除了 GNU 编译器,请 Creator v2.0.9 以下的版本 不要 将 NDK 更新到 r18,否则会导致编译报错。

记住窗口上方所示的 Android SDK Location 指示的目录,稍后我们需要在 Cocos Creator 里填写这个 SDK 所在位置。

点击 OK,根据提示完成安装。

配置原生发布环境路径

下载安装好开发环境依赖后,让我们回到 Cocos Creator 中配置构建发布原生平台的环境路径。在主菜单中选择 文件 -> 设置,打开设置窗口:

在原生开发环境里面要配置两个路径:

  • NDK 路径,选择 Android SDK Location 路径下的 ndk-bundle 文件夹(NDK 是其根目录),不需要编译 Android 平台的话这里可以跳过。
  • Android SDK 路径,选择刚才在 SDK Manager 中记下的 Android SDK Location 路径(Android SDK 的目录下应该包含 build-tools、platforms 等文件夹),不需要编译 Android 平台的话这里可以跳过。

配置完成后点击 保存 按钮,保存并关闭窗口。

配置好开发环境后就是打包发布了。

打包发布原生平台

点击菜单栏的 项目 -> 构建发布,打开构建发布面板。或者快捷键 Ctrl + Shift + B 也可以打开构建发布面板。

这里的这些构建选项都可以参考 Cocos Creator 的官方文档 去查看各个选项的作用,这里就不再一一列出了。

构建原生工程

选择发布平台,设置了初始场景后,就可以开始构建了,点击右下角的 构建 按钮,开始构建流程。

构建成功后,在CCC编译器面板的控制台,看到输出了

Built to "C:\Users\Administrator\Desktop\Animation\build\jsb-link" successfully

就表示已经构建成功。构建结束后,我们得到的是一个标准的 cocos2d-x 工程,和使用 Cocos Console 新建的工程有同样的结构。接下来我们可以选择通过 Cocos Creator 编辑器的进程进行编译,以及运行桌面预览,或手动在相应平台的 IDE 中打开构建好的原生工程,进行进一步的预览、调试和发布。

通过编译器去编译和运行

点击下方的 编译 按钮,进入编译流程,如果模板选择了 link 的源码版引擎,这个编译的过程将会花费比较久的时间。编译成功后会提示

Compile native project successfully.

如果在控制台中显示出现错误的,建议删除掉 SDK 中的 ndk-bundle 文件,然后重新 下载 DNK 文件,建议下载旧版本 r16 或者 r17,下载最新版本可能会报错。

下载完成后将下载的文件替换掉我们删除的 ndk-bundle 文件,并将文件名更改成 ndk-bundle 。然后再次进行编译。

接下来就可以点击右下角的 运行 按钮,通过默认方式预览原生平台的游戏。

点击运行后,视平台不同可能还会继续进行一部分编译工作,请耐心等待或通过日志文件查看进展。

如果我们没有更改路径,打包后的 apk 会在 build\jsb-link\publish\android 里面。

这就完成了打包,虽然不是很难,但是我们总是会因为配置环境变量的问题,而报出各种错误,在下载工具的时候也会因为工具的残缺,报出各式各样的错误,总之会出现各种各样的坑。

Cocos Creator Android打包 apk的更多相关文章

  1. android打包apk时混淆遇到的问题

    android打包apk的时候一般会选择混淆,而在eclipse中常使用的是proguard来混淆.有很多时候引用了第三方包的时候会导致打包不成功,或者打包成功不能运行的情况. 首先看看正常的prog ...

  2. ReactNative之Android打包APK方法(趟坑过程)

    欢迎大家加群讨论 点击链接加入群[ReactNative-解决问题交流群] :644124441 点击链接加入群[ReactNative技术交流群2] :687663534 多余的不解释了.直接上车吧 ...

  3. React Native Android打包apk

    按照官方的5步曲: 1.在终端里面,cd 到项目的根目录后.执行下面这行命令: keytool -genkey -v -keystore my-release-key.keystore -alias ...

  4. [置顶] Android 打包apk无敌报错

    前言: 这个问题从昨天上午一直到现在,请教了很多大佬,都没有给出确定的解决方案,可能他们也没碰到过可能,不过还是挺感谢他们的建议,一直到今天中午午休,我一直都在想这个问题,就是下面的这个,看了国内很多 ...

  5. 【转】android Apk打包过程概述_android是如何打包apk的

    最近看了老罗分析android资源管理和apk打包流程的博客,参考其他一些资料,做了一下整理,脱离繁琐的打包细节和数据结构,从整体上概述了apk打包的整个流程.   流程概述: 1.打包资源文件,生成 ...

  6. android Apk打包过程概述_android是如何打包apk的

    流程概述:1.打包资源文件,生成R.java文件2.处理aidl文件,生成相应java 文件3.编译工程源代码,生成相应class 文件4.转换所有class文件,生成classes.dex文件5.打 ...

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

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

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

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

  9. Cocos2d-x 3.2 打包Android平台APK

    (转自:http://www.cnblogs.com/Richard-Core/p/3855130.html) 从cocos2dx 3.2项目打包成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭 ...

随机推荐

  1. Http协议与TCP协议

    背景 在日常工作中,经常会遇到某某框架是基于Http协议或者TCP协议,今天,就针对于该协议,整理下 从本质上来说,Http协议与TCP协议是应用在不同网络层,Http协议处于应用层,TCP处于传输层 ...

  2. 属性 Attribute

    一.创建属性 [AttributeUsage(AttributeTargets.Class | AttributeTargets.Constructor, AllowMultiple = true, ...

  3. 多线程爬取猫眼电影TOP100并保存到mongo数据库中

    import requests import re import json from requests.exceptions import RequestException from multipro ...

  4. HTML - My First Page!

    HTML简介 超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言. 您可以使用 HTML 来建立自己的 WEB 站点,HTML ...

  5. Ubuntu 蓝牙鼠标的问题

    问题: 我有一个小巧的蓝牙鼠标,但有一个问题. 当它不使用一段时间时,它会关闭. 好的我得按按钮把它打开. 但是我发现,在我在蓝牙小程序下单击"连接"之前,它不会再被Ubuntu识 ...

  6. chrome扩展开发实战入门之二-自动搜索

    目标:产生随机数,用于百度搜索:像看电视一样观看搜索结果 参考上一篇,新建目录hellocrx,其中三个文件:manifest.json  content_script.js 和jquery-3.4. ...

  7. fmt

    fmt.Println("hello world") fmt.Printf("%T",a)打印a 的类型 fmt.Printf("%v",a ...

  8. leetcode解题报告(13):K-diff Pairs in an Array

    描述 Given an array of integers and an integer k, you need to find the number of unique k-diff pairs i ...

  9. 利用chrome devtool 观察页面占用内存

    推荐阅读:解决内存问题 1. 任务管理器 我们看看下面这幅图: 内存占用空间:原生内存,Dom节点就是存在原生内存里面的. Javascript使用的内存:代表JS堆内存,我们只需要关心括号里面的值( ...

  10. hive 调优(一)coding调优

    本人认为hive是很好的工具,目前支持mr,tez,spark执行引擎,有些大公司原来封装的sparksql,开发py脚本,但是目前hive支持spark引擎(不是很稳定,建议Tez先),所以离线还是 ...