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

Jenkins编译Android项目提示系统找不到指定文件错误

问题描述

使用Jenkins构建Android项目时,同项目在Android Studio中可正常构建运行,但执行如下Pipeline脚本时大部分编译流程正常,最终执行失败:

pipeline {
  agent any
  options {
    // 编译或测试失败时提前终止构建
    skipStagesAfterUnstable()
  }
  stages {
    stage('Build') {
        steps {
            git url: 'git project', branch: 'dev',
             credentialsId: 'my id'
        }
    }
    stage('Compile') {
      steps {
        sh './gradlew app:compileDevelopmentDebugSources'
      }
    }
  }
}

失败抛出的核心错误如下:

* What went wrong:

任务:app:processDevelopmentDebugResources执行失败:

无法解析配置:app:developmentDebugRuntimeClasspath的所有文件,转换appcompat-1.3.1.aar (androidx.appcompat:appcompat:1.3.1)以匹配属性{artifactType=android-compiled-dependencies-resources, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}时失败。

AarResourcesCompilerTransform执行失败,对应路径为C:\Windows\System32\config\systemprofile.gradle\caches\transforms-3\9e32ce413d257d430ee86cf55f3ee638\transformed\appcompat-1.3.1。
Android资源编译失败
ERROR:AAPT: C:\Windows\System32\config\systemprofile.gradle\caches\transforms-3\6f89bc5bb3a2c965d5a4f83c7a248dca\transformed\androidx.appcompat: error: The system cannot find the file specified. (2).

后续还多次出现core-1.8.0-rc01.aar (androidx.core:core:1.8.0-rc01)转换失败的相同错误,均触发AarResourcesCompilerTransform执行异常,AAPT提示系统找不到指定文件。

问题根因

从错误日志中的Gradle缓存路径C:\Windows\System32\config\systemprofile\.gradle可以定位核心原因:

  • Jenkins在Windows环境下默认以本地SYSTEM系统账号运行服务,该账号的用户主目录就是上述System32下的系统敏感路径。
  • SYSTEM账号对该目录的访问存在UAC权限限制,同时Windows对System32目录下的进程文件访问有额外拦截规则,AAPT(Android资源编译工具)在处理AAR转换后的资源文件时,无法正常读取对应路径下的文件,最终报「找不到指定文件」错误。
  • Android Studio默认以当前登录的普通用户身份运行,Gradle缓存存放在普通用户目录(如C:\Users\你的用户名\.gradle)下,无权限/路径访问限制,因此可以正常构建。
解决步骤
  • 修改Jenkins服务运行身份:按下Win+R输入services.msc打开服务管理器,找到Jenkins服务右键选择「属性」,切换到「登录」标签页,不要选择「本地系统账户」,改为你日常运行Android Studio的本地普通用户账号,输入该账号的登录密码后点击确定,重启Jenkins服务。
  • 清理损坏的历史缓存:直接删除C:\Windows\System32\config\systemprofile\.gradle整个目录,避免之前生成的损坏缓存文件影响后续构建。
  • (可选优化)配置全局GRADLE_USER_HOME环境变量,将Gradle缓存目录修改到非系统盘的非敏感路径(例如D:\gradle_cache),从根源上避免系统目录权限、长路径限制导致的同类构建问题,配置完成后重启Jenkins服务生效。
  • 重新触发Pipeline构建,验证AAR资源转换步骤可正常执行,不再抛出文件找不到的错误。

内容的提问来源于stack exchange,提问作者V.Rashkov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 10:15:56