1. Cocos Creator 3.8.7安卓打包环境准备
1.1 JDK安装与配置
安卓打包需要Java Development Kit (JDK)作为基础环境。推荐使用JDK 8或JDK 11版本,这两个版本在Cocos Creator 3.8.7上经过充分测试。安装完成后需要配置以下环境变量:
- JAVA_HOME:指向JDK安装目录(例如C:\Program Files\Java\jdk1.8.0_291)
- Path:添加%JAVA_HOME%\bin路径
验证安装是否成功:
bash复制java -version
javac -version
注意:如果电脑上已安装多个JDK版本,建议通过控制面板卸载不需要的版本,避免环境变量冲突导致打包失败。
1.2 Android SDK配置
Android SDK是打包安卓应用的核心工具集。推荐通过Android Studio安装:
- 下载并安装Android Studio
- 打开SDK Manager安装以下组件:
- Android SDK Platform(对应目标API级别)
- Android SDK Build-Tools(推荐30.0.3版本)
- NDK(建议版本21.4.7075529)
- CMake(3.10.2+)
配置环境变量:
- ANDROID_HOME:指向SDK安装目录
- Path:添加%ANDROID_HOME%\platform-tools和%ANDROID_HOME%\tools
1.3 Cocos Creator环境检查
在Cocos Creator编辑器中检查Native开发环境:
- 打开编辑器偏好设置(Cocos Creator -> Preferences)
- 切换到Native Development选项卡
- 确认以下路径配置正确:
- Android NDK路径
- Android SDK路径
- JDK路径
如果显示绿色对勾表示配置正确,黄色感叹号则需要检查路径设置。
2. 项目基础配置
2.1 构建面板设置
在Cocos Creator编辑器中:
- 点击顶部菜单的"项目"->"构建发布"
- 选择Android平台
- 关键配置项说明:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| 包名 | com.company.product | 遵循反向域名规则 |
| 目标API级别 | 30 | 匹配Google Play要求 |
| 应用版本名称 | 1.0.0 | 用户可见版本号 |
| 应用版本代码 | 100 | 内部递增数字 |
| 屏幕方向 | 根据项目需求 | 通常选择sensorLandscape或sensorPortrait |
2.2 签名文件配置
安卓应用必须使用签名文件才能发布:
- 生成签名密钥:
bash复制keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
- 在构建面板中配置:
- 勾选"使用调试密钥库"(开发阶段)
- 或指定正式签名文件路径(发布阶段)
重要:务必保管好签名文件和密码,丢失后将无法更新应用。
3. 高级构建配置
3.1 原生工程定制
对于需要原生代码交互的项目:
-
生成原生工程:
- 在构建面板勾选"生成原生项目"
- 构建完成后会在build目录生成android工程
-
常见定制内容:
- 修改AndroidManifest.xml(权限、Activity配置)
- 添加第三方SDK依赖(修改build.gradle)
- 实现原生接口(创建Java类继承Cocos2dxActivity)
-
重新编译:
bash复制cd build/android/proj
./gradlew assembleRelease
3.2 多渠道打包
针对不同应用商店的打包需求:
- 在assets目录创建channel文件(如channel.txt)
- 修改构建脚本读取渠道信息:
javascript复制// 在构建插件的onAfterBuild回调中
const fs = require('fs');
fs.writeFileSync(androidProjectPath + '/assets/channel.txt', buildOptions.channel);
- 通过命令行批量构建:
bash复制creator --project path/to/project --build "platform=android;channel=googleplay"
creator --project path/to/project --build "platform=android;channel=huawei"
4. 常见问题排查
4.1 构建失败分析
常见错误及解决方案:
| 错误现象 | 可能原因 | 解决方案 |
|---|---|---|
| "Failed to install the following Android SDK packages" | SDK组件缺失 | 通过Android Studio安装对应组件 |
| "Could not determine java version" | JDK版本不兼容 | 切换为JDK 8或11 |
| "Execution failed for task ':app:mergeDebugResources'" | 资源文件错误 | 检查项目中的图片等资源文件格式 |
| "INSTALL_PARSE_FAILED_NO_CERTIFICATES" | 签名问题 | 配置正确的签名文件 |
4.2 性能优化建议
-
纹理压缩:
- 使用ASTC格式(需设备支持)
- 或ETC2作为fallback
-
代码分包:
javascript复制// 在脚本中标记子包
cc.assetManager.downloader.registerSubpackage('subpackage1');
- 内存优化:
- 合理设置纹理的loadMode为web或native
- 及时释放未使用的资源:
javascript复制cc.assetManager.releaseAsset(texture);
5. 发布流程
5.1 APK生成与测试
-
构建生成APK文件:
- 开发测试使用debug版本
- 正式发布使用release版本
-
安装测试方法:
bash复制adb install -r ./build/android/proj/app/build/outputs/apk/release/app-release.apk
- 关键测试点:
- 不同分辨率设备适配
- 横竖屏切换
- 前后台切换
- 多线程加载场景
5.2 AAB打包与Google Play发布
- 构建Android App Bundle:
- 在构建面板勾选"生成App Bundle"
- 或使用命令行:
bash复制./gradlew bundleRelease
- 使用bundletool测试:
bash复制bundletool build-apks --bundle=app.aab --output=app.apks
bundletool install-apks --apks=app.apks
- 上传Google Play:
- 登录Google Play Console
- 创建新应用或新版本
- 上传AAB文件
- 填写版本说明和测试信息
6. 持续集成方案
6.1 Jenkins自动化构建
-
安装必要插件:
- Git plugin
- Android Lint plugin
- Gradle plugin
-
配置构建任务:
groovy复制pipeline {
agent any
stages {
stage('Checkout') {
steps {
git 'https://github.com/your/project.git'
}
}
stage('Build') {
steps {
bat 'creator --project . --build "platform=android;buildPath=build/android"'
dir('build/android/proj') {
bat './gradlew assembleRelease'
}
}
}
}
}
6.2 自定义构建模板
在项目目录创建build-templates目录,添加自定义模板:
- android模板结构:
code复制build-templates/
└── android/
├── gradle.properties
├── proj/
│ └── app/
│ ├── build.gradle
│ └── src/
└── script/
└── build.gradle
- 关键配置示例(build.gradle):
groovy复制android {
defaultConfig {
applicationId "com.your.company"
minSdkVersion 21
targetSdkVersion 30
versionCode 100
versionName "1.0.0"
}
signingConfigs {
release {
storeFile file("../../release.keystore")
storePassword System.getenv("STORE_PASSWORD")
keyAlias "yourkey"
keyPassword System.getenv("KEY_PASSWORD")
}
}
}
在实际项目开发中,我发现合理配置gradle.properties可以显著提升构建速度:
code复制org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.caching=true
android.enableBuildCache=true