You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab CI升级后Android构建失败:AAPT2守护进程启动失败

解决GitLab CI中AAPT2守护进程启动失败导致的Android构建问题

我之前在GitLab CI的Docker环境里也碰到过一模一样的AAPT2启动失败问题,结合你的环境配置(Gradle 7.6、AGP 7.3.1,Android SDK 33),可以试试下面这些针对性的解决办法:

1. 检查Docker镜像中AAPT2的执行权限

Linux环境下AAPT2二进制文件需要可执行权限才能运行,很多时候Docker镜像构建时会忽略这一点。你可以在Dockerfile里添加一行命令确保权限正确:

RUN chmod +x $ANDROID_HOME/build-tools/$ANDROID_BUILD_TOOLS/aapt2

如果是使用现成的镜像,也可以在CI流水线的前置步骤里手动修改权限:

chmod +x $ANDROID_HOME/build-tools/33.0.1/aapt2

2. 强制禁用AAPT2守护进程

这是快速绕过问题的办法,虽然会稍微降低构建速度,但能直接避免守护进程启动失败的问题。在项目根目录的gradle.properties文件中添加:

android.enableAapt2Daemon=false

3. 调整GitLab CI Runner的内存限制

AAPT2守护进程启动需要足够的内存资源,GitLab CI默认给Docker容器的内存可能不足。你可以在.gitlab-ci.yml里增加内存配置:

variables:
  DOCKER_MEMORY: "4g"

或者在GitLab Runner的配置文件(config.toml)里修改memory参数,给容器分配更多内存。

4. 修正Gradle与AGP的版本兼容性问题

注意:AGP 7.3.1官方兼容的Gradle版本范围是7.3~7.5,而你使用的是Gradle 7.6,这很可能是兼容性冲突的根源。你有两个选择:

  • 把AGP升级到7.4.2(官方适配Gradle 7.6的版本)
  • 把Gradle降级到7.5版本

5. 彻底清理CI项目缓存

除了服务器缓存,GitLab CI的项目专属缓存也可能残留损坏的文件。你可以:

  • 手动进入项目的Settings -> CI/CD -> Cache页面清理缓存
  • 在.gitlab-ci.yml里修改缓存的key值,比如加个版本号,强制重新下载所有依赖:
cache:
  key: "gradle-cache-v2"
  paths:
    - .gradle/

另外,本地构建正常是因为本地环境的权限、内存资源、依赖缓存都处于稳定状态,而CI的Docker环境是完全隔离的,更容易出现权限不足、资源受限或者版本不兼容的问题。

内容的提问来源于stack exchange,提问作者Osama Mattar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 17:10:49