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

Jenkins构建APK时AAPT2守护进程启动失败求助

问题:Jenkins Docker容器构建Capacitor APK时AAPT2守护进程启动失败

我正在用Jenkins流水线实现APK自动化构建,Jenkins部署在装有npm、Ionic、OpenJDK、Android SDK和Gradle的Docker容器里,项目基于Capacitor框架。

流水线「Build APK」阶段代码如下:

stage('Build APK') {
     sh 'npm run build'
     sh 'npx capacitor sync android'
     sh 'npx capacitor build android --keystorepath /keyfiles/<filename>.jks --keystorealias <alias> --keystorepass <pass> --keystorealiaspass <pass> --androidreleasetype APK'
}

构建时Jenkins控制台报错:

> Task :app:mergeReleaseResources FAILED
> Task :capacitor-google-maps:extractReleaseAnnotations

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeReleaseResources'.
> Multiple task action failures occurred:
> A failure occurred while executing com.android.build.gradle.internal.res.Aapt2CompileRunnable
> AAPT2 aapt2-7.2.1-7984345-linux Daemon #0: Daemon startup failed
This should not happen under normal circumstances, please file an issue if it does.
> A failure occurred while executing com.android.build.gradle.internal.res.Aapt2CompileRunnable
> AAPT2 aapt2-7.2.1-7984345-linux Daemon #2: Daemon startup failed
This should not happen under normal circumstances, please file an issue if it does.
> A failure occurred while executing com.android.build.gradle.internal.res.Aapt2CompileRunnable
> AAPT2 aapt2-7.2.1-7984345-linux Daemon #1: Daemon startup failed
This should not happen under normal circumstances, please file an issue if it does.

已经查过谷歌和Stack Overflow的方案,但问题没解决,求帮助。


可行解决方案

1. 调整Docker容器资源配额

AAPT2守护进程启动失败大概率和容器内存/CPU不足有关:

  • 给Docker容器分配至少2GB内存,2核以上CPU
  • 检查Jenkins构建节点的资源限制,避免和其他任务抢占资源

2. 禁用AAPT2守护进程模式

在项目的gradle.properties中添加配置,强制AAPT2以非守护进程运行:

android.enableAapt2=false

或者直接在构建命令中追加参数:

sh 'npx capacitor build android --keystorepath /keyfiles/<filename>.jks --keystorealias <alias> --keystorepass <pass> --keystorealiaspass <pass> --androidreleasetype APK -Pandroid.enableAapt2=false'

3. 更新Android SDK Build Tools版本

当前用的AAPT2版本是7.2.1,尝试升级到稳定的高版本:

  • 在Docker容器中执行命令更新Build Tools:
sdkmanager "build-tools;33.0.2"
  • 同步项目android/build.gradle文件,指定新的Build Tools版本:
buildToolsVersion "33.0.2"

4. 清理构建缓存

缓存损坏可能导致AAPT2异常,在构建前增加清理步骤:

stage('Build APK') {
     sh 'npm run build'
     sh 'npx capacitor sync android'
     sh 'cd android && ./gradlew clean' // 新增清理gradle缓存
     sh 'npx capacitor build android --keystorepath /keyfiles/<filename>.jks --keystorealias <alias> --keystorepass <pass> --keystorealiaspass <pass> --androidreleasetype APK'
}

5. 补充Docker容器系统依赖

AAPT2需要32位系统库支持,如果是Ubuntu/Debian基础镜像,执行以下命令安装依赖:

apt-get update && apt-get install -y lib32z1 lib32stdc++6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 01:33:37