引言:为什么选择原生打包?
- 跨平台优势:一套代码发布iOS/Android/Web等多平台
- 应用场景:需要应用商店分发、使用原生API、追求极致性能的游戏
一、环境准备(Windows/Mac双平台说明)
1.1 必要软件清单
软件名称 | 版本要求 | 下载地址 |
---|---|---|
Cocos Creator | 3.7.0+ | 官网下载 |
Java JDK | 1.8.x | Oracle官网 |
Android Studio | 2022.3.1+ | Android官网 |
Python(仅Windows) | 2.7.x | Python官网 |
1.2 Android环境配置
1.安装SDK组件:
1.(选择相应合适的版本)
-
SDK Tools → 勾选 Android SDK Build-Tools 30.0.3+
-
SDK Platform → 选择 API Level 30 (Android 11)
-
NDK → 推荐版本 21.4.7075529
-
2、jdk
下载jdk
https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html
安装后,这里能选择
3、gradle
Gradle Plugin Version 7.2.2
Gradle Version 7.3.3
2.配置环境变量(以Windows为例):
# 系统变量示例
ANDROID_HOME = C:\Users\YourName\AppData\Local\Android\Sdk
JAVA_HOME = C:\Program Files\Java\jdk1.8.0_321
PATH追加:%ANDROID_HOME%\platform-tools;%JAVA_HOME%\bin
3.Cocos Creator路径绑定
- 菜单栏 → 文件 → 设置 → 原生开发环境:
- NDK路径 → android-ndk-r21e
- SDK路径 → Android SDK根目录
- JDK路径 → Java安装目录
可以不配,直接用android studio 打包。
二、构建APK全流程
2.1 基础配置步骤
1.项目设置
构建后,会在根目录下,生成一个proj的工程。
2.构建流程
- 打开 项目 → 构建发布
- 选择 Android 平台
- 点击 构建 → 等待编译完成(首次构建约5-15分钟)
2.2 生成签名APK
1.创建签名密钥:
keytool -genkey -v -keystore my-release-key.keystore
-alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
2.配置签名信息::
// android.json 配置片段
"keystorePath": "build/android/proj/my-release-key.keystore",
"keystorePassword": "yourpassword",
"keystoreAlias": "my-key-alias",
"keystoreAliasPassword": "aliaspassword"
3.生成APK:
- 勾选 生成签名包
- 输出路径查看:build/android/proj/app/build/outputs/apk/release/
4、android studio打开工程
-
打包
-
在android studio下进行打包。
-
设置打包秘钥,debug情况下
-
配置秘钥路径,cocoscreator,3.x的安装路径下有这个秘钥,选择即可。
/Applications/Cocos/Creator/3.7.3/CocosCreator.app/Contents/Resources/tools/keystore/debug.keystore
-
这里配置了构建apk后的打包apk产出路径在哪
-
国内资源服
(下载速度太慢)
我也是查来的
三、常见问题排查手册
3.1 构建失败分析
错误提示 | 解决方案 |
---|---|
NDK not configured | 检查NDK路径是否包含空格/中文 |
Failed to install Gradle | 手动下载gradle-7.5-bin.zip 放置到 ~/.gradle/wrapper/dists/ |
INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION | 清理工程 → cd build/android/proj && ./gradlew clean |
3.2 运行时异常处理
黑屏问题排查步骤:
- 检查 main.js 是否被正确压缩
- 验证资源路径是否包含中文
- 使用 adb logcat 查看崩溃日志
触屏失灵处理:
// 修改cc.view参数
cc.view.enableAutoFullScreen(false);
cc.view.setOrientation(cc.macro.ORIENTATION_LANDSCAPE);
结语:最佳实践清单
- 版本控制:将 build/android 加入.gitignore
- 热更新机制:集成Asset Manager实现资源热更
- 多渠道打包:使用Gradle Flavors生成不同渠道包
- 性能监控:接入PerfDog进行真机测试