安卓构建示例 · Cocos Creator |
您所在的位置:网站首页 › vivo文档加载错误无法打开 › 安卓构建示例 · Cocos Creator |
安卓构建示例
本节我们介绍如何通过 Android Studio 构建安卓工程。 请准备一个至少含有一个场景的 Cocos Creator 项目。 发布流程 配置安卓开发环境下载 Android Studio 开发者可以从 Android Studio 官方网站 下载对应的 IDE。 参考 安装配置原生开发环境 搭建开发环境 下载并安装 JDK 参考 安装配置原生开发环境 - 下载 Java SDK(JDK)在终端中输入 java -version 查看是否安装成功
需要配置对应的环境变量,请参考 如何设置或更改 JAVA 系统环境变量。 注意:笔者采用的 OpenJDK,功能上和 JDK 相同但开源协议不同。 下载并安装 Android SDK Android Studio 下载 Android SDK 示例 启动 Android Studio 通过下列菜单打开 Setting 面板
在 Setting 内找到 SDK 下载分页
选中对应版本的 SDK 并加载,可以选择使用 下载发布 Android 平台所需的 SDK 和 NDK 中推荐的版本 以 Android 11.0(R) 为示例,选中 Name 前的勾并点击上图中的 OK 或者 Apply 按钮。 在弹出框中选择 OK
下载
手动下载 Android SDK 如果出现网络问题无法下载 SDK,可以通过手动的方式下载并放在 Android SDK Location 配置的目录内 您也可以点击后方的 Edit 按钮选择不同的路径
无法下载 SDK 时可以选择其他镜像(可选): 在 Android Studio 中配置 HTTP 代理: 自动配置代理: 在 Setting 中找到 HTTP Proxy,勾选 Auto-detect proxy settings,填入下方描述的镜像源,以腾讯源为例:
可选的镜像源: 安卓 SDK 以及下文中提到的 Gradle 都会有一些镜像源用于帮助您解决无法从官网下载的问题,如果下方表格的镜像也无法解决,也可以从搜索引擎获取。 | 镜像源 | 地址 | | :--- | :--- | | 腾讯 | https://mirrors.cloud.tencent.com/AndroidSDK/ | | 阿里云 | https://mirrors.aliyun.com/android.googlesource.com/ | 如果出现镜像不可用的情况,您可以视可用性更换不同的镜像源。 下载并安装 NDK 根据 安装配置原生开发环境 - 下载发布 Android 平台所需的 SDK 和 NDK 推荐的版本区间下载 NDK(推荐使用版本为 r18~21) 通过 Android Studio 下载 NDK: 打开 Android Studio 的 Setting 窗口,找到 Android SDK 分页: 注意:需要勾选 Show Package Details:
勾选合适的版本进行下载,如果无法刷新出所有 NDK 版本,请查看下文手动下载部分。 手动下载 NDK: 您可以在 历史版本 找到下载。 在上述地址中找到对应平台的 NDK 版本并下载,此处以 r20b 为例,选择您的操作系统所需的安装包,下载并解压到本地。 配置 SDK 和 NDK 回到 Cocos Creator 中,在 文件 -> 偏好设置 内找到 程序管理器,并配置好 Android NDK 和 Android SDK: 目录选择如下: NDK:
SDK: 发布 接下来,在 Cocos Creator 找到 项目 菜单,创建发布任务并发布。 创建发布任务 选择 项目 -> 构建 菜单,打开构建面板
点击面板上的 新建构建任务 选项: P 选择构建平台为安卓:
选择至少一个场景作为应用载入的首场景,当仅有一个场景时会被默认添加:
参考 Android 平台构建选项 - 渲染后端 选择渲染后端
填入包名
名称规范请参考 应用 ID 名称 选择 Target API Level
如果没有下拉框,请检查上面的 配置 SDK 和 NDK 是否正确。 其他选项请参考 Android 平台构建选项 发布 构建:点击下方的 构建 按钮会创建一个新的构建任务并开始构建
等待构建完成
编译导出的工程 在点击下面的按钮打开生成好的 Android Studio 工程: 找到工程对应的目录 打开 Android Studio 的菜单: 打开已经构建好的项目,默认在 {项目路径}/build 里,工程名默认为 android: 使用 Android Studio 构建 APK 待 Android Studio 将项目准备完成后,即可打包 APK,准备过程可能会耗时较久,如果长时间无响应,请检查网络,或者切换到其他镜像。此时如果您需要中断目前的后台任务,可参考下列关闭方法: Android Studio 有后台任务时,可以点击窗口下方的后台任务栏: 在弹出窗中点击右侧的 × 以结束后台任务: 打开 Build 菜单选择 Build Bundle(s) / APK(s):
发布成功后可以在 proj/build 目录内找到 Debug 版本的 APK:
正式版本需要避免使用调试秘钥:取消 使用调试秘钥 并从下方的 秘钥库路径 中找到自定义的秘钥。
如果无秘钥,可以使用 JAVA 来生成对应的秘钥;也可以通过 Android Studio 来生成: 选中 Generate Signed Bundle / APK:
选中生成 APK:
在引导的窗口中点击 Create new: 进阶 导入第三方库 为了将应用发布到应用市场,通常需要对接某些第三方的 SDK,通常这些 SDK 会提供给您 JAR 或 AAR 格式,您可以参考 在其他项目中使用您的库 将本地的库导入到工程内。 JAVA 和 TypeScript 互相通信引擎提供多样化的方法用于解决 TypeScript 和 Native 层交互问题。 常见的 SDK 接入时,我们需要通过 SDK 的登陆接口进行登陆操作,获取到登陆结果后再将结果传入到 TypeScript 层以方便游戏进行处理。 引擎提供 简化使用 JavaScript 调用 Java 方法 可以较为快速的解决这类问题。通常来说,这个机制用于对接 SDK 中如注册、登陆等行为是比较方便的。 在安卓工程中找到 AppActivity.java 并在 onCreated 方法中添加如下代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // DO OTHER INITIALIZATION BELOW SDKWrapper.shared().init(this); JsbBridge.setCallback(new JsbBridge.ICallback() { @Override public void onScript(String arg0, String arg1) { Log.d("[AppActivity]", "onScript: " + arg0 + "," + arg1); JsbBridge.sendToScript("sdklogin", "result json here"); } }); }添加完成后,JsbBridge.setCallback 的回调 onScript 就可以接受到 TypeScript 内发送的信息。 JsbBridge.sendToScript 可以将信息发送到 TypeScript 层。 在编辑器中创建一个脚本并添加如下代码: import { _decorator, Component, Label, native } from 'cc'; import { NATIVE } from 'cc/env'; const { ccclass, property } = _decorator; @ccclass('DebugOnNative') export class DebugOnNative extends Component { @property(Label) debugLabel: Label = null; start() { if (NATIVE) { native.bridge.onNative = (arg0: string, arg1?: string | null) => { console.log('onNative', arg0, arg1); this.debugLabel.string = 'onNative' + arg0 + "," + arg1; } } } onSendToNative() { if (NATIVE) { native.bridge.sendToNative("logInToGameSerivceResult", "isOK=true"); } } }native.bridge.sendToNative 方法允许 TypeScript 层向 Java 层发送信息,并在 JAVA 层内的 JsbBridge.setCallback 的回调 onScript 被接收到。 native.bridge.onNative 回调可以接受 JAVA 层通过 JsbBridge.sendToScript 发送的信息。 编译并启动游戏,触发 onSendToNative 方法后即可观察到日志情况:
注意: 使用 NATIVE 宏来控制访问权限,只有原生的应用才可以访问这些方法 待引擎初始化完成才可以调用 JsbBridge.sendToScript 向 JAVA 发送消息 该方法只能传输字符串,复杂数据可以编码为 JSON 格式后传输对于复杂的数据结构可以参考 JSB Swig 或 JSB。 扩展发布机制参考 自定义构建流程 通过扩展系统对发布机制进行扩展。 Q&AQ:发布时的错误如何调试 A:点击日志按钮,进行查看
Q:提示缺少 LIB_EGL A:更换 NDK 版本为文中所述的版本Q:文件命名 A:由于安卓是基于 Linux 的,因此 Linux 的一些文件规范在安卓依然适用,如: 安卓是大小写敏感的,确保路径的大小写是正确的,否则将无法正确加载 文件夹或文件名中不要含有空格等字符 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |