GitLab CI/CD构建Android 13应用遇aapt2警告与Gradle守护进程异常
解决GitLab CI构建Android 13应用的aapt2警告与Gradle守护进程崩溃问题
针对你遇到的aapt2警告、Gradle守护进程意外消失以及compileDevReleaseKotlin任务失败的问题,以下是具体排查和修复方案:
1. 升级Android Build Tools版本
你当前使用的33.0.0版本存在已知的aapt2资源处理bug,会触发Unknown chunk type '200'警告,甚至可能导致Gradle守护进程崩溃。修改CI配置中的ANDROID_BUILD_TOOLS变量为更高兼容版本:
variables: ANDROID_BUILD_TOOLS: "33.0.3"
2. 增加Gradle内存分配
GitLab Runner默认内存有限,Gradle守护进程因内存不足崩溃是常见原因。可通过两种方式调整内存:
- 在项目根目录的
gradle.properties中添加:org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m - 或者在CI的
before_script中设置环境变量:export GRADLE_OPTS="-Xmx2048m -XX:MaxMetaspaceSize=512m"
3. 排查并修复异常资源文件
Unknown chunk type '200'警告指向资源文件存在异常,按以下步骤处理:
- 检查项目
res目录下所有XML文件(布局、值资源、Drawable等),修复语法错误或特殊字符 - 若使用第三方依赖库,升级到最新稳定版本,排除库自带资源的问题
- 本地用Android Studio执行
File > Invalidate Caches... > Invalidate and Restart,清理缓存后重新同步项目再推送代码
4. 完善Android SDK安装流程
你的CI脚本中SDK安装部分不完整,确保安装所有必要组件,替换before_script中的SDK安装步骤为:
- wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS}_latest.zip - unzip -q android-sdk.zip -d ${ANDROID_HOME} - mv ${ANDROID_HOME}/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest - export PATH=$PATH:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools/ - yes | sdkmanager --licenses - sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}" "build-tools;${ANDROID_BUILD_TOOLS}" "platform-tools"
5. 临时禁用Gradle守护进程(排查用)
如果以上方法未解决问题,尝试在CI构建命令中禁用守护进程,确认是否为守护进程本身的问题:
./gradlew assembleDebug --no-daemon
内容的提问来源于stack exchange,提问作者Tadashi
相关产品推荐
相关产品推荐

