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

升级Gradle至7.2.1同步报错无法修改已解析依赖配置属性

问题现象
  • 操作流程:通过Android Studio升级助手将Gradle从7.0.4版本升级至7.2.1版本,升级完成后IDE自动触发Gradle同步
  • 同步阶段报错信息:
Cannot change attributes of dependency configuration ':app:releaseUnitTestCompileClasspath' after it has been resolved
  • 相关截图:
    • 报错弹窗界面:Gradle同步报错弹窗
    • 构建窗口输出日志:构建窗口报错日志
概念解释::app:releaseUnitTestCompileClasspath的含义

这是Android Gradle插件按构建变体、源代码集自动生成的依赖配置项,分段含义如下:

  • :app:指代项目中的app主模块
  • release:对应release正式版构建变体
  • UnitTest:对应本地单元测试源代码集(即test目录下的测试代码,非androidTest下的设备测试)
  • CompileClasspath:指代编译对应代码时,Gradle用于检索依赖类、资源文件的类路径容器
    整体来说,这个配置的作用是管理app模块release版本的本地单元测试代码编译阶段所需的全部依赖。按照Gradle的生命周期规则,依赖配置完成解析后,所有属性会被锁定,不允许再做修改,这也是本次报错的核心触发逻辑。
报错根因

该报错是Gradle 7.2版本收紧生命周期校验规则导致的兼容问题:

  • Gradle 7.0.x版本对「依赖配置解析完成后再修改其属性」的违规操作仅输出警告,不会中断同步或构建流程
  • 升级到7.2版本后,这类违规操作会直接抛出错误终止流程
    绝大多数场景下,触发该错误的原因是项目中引入的第三方Gradle插件、或是自定义的Gradle配置逻辑,在:app:releaseUnitTestCompileClasspath已经完成依赖解析后,仍尝试修改该配置的属性(比如强制指定依赖版本、追加依赖、修改属性匹配规则、提前触发依赖解析等)。
排查与解决方案

按优先级从高到低依次操作即可:

  1. 升级不兼容的第三方Gradle插件
    优先检查根目录build.gradle下通过classpath引入的自定义插件,常见触发问题的插件包括旧版本字节码插桩插件、多渠道打包插件、依赖检查插件、单元测试增强插件。将所有第三方插件升级到适配Gradle 7.2+的版本即可;如果项目使用Kotlin,需保证Kotlin Gradle插件版本不低于1.5.31,和AGP 7.2版本匹配。
  2. 修正自定义Gradle配置逻辑
    检查各模块build.gradle中的自定义代码:
    • 排查是否存在主动调用configurations.releaseUnitTestCompileClasspath.resolvedConfiguration的逻辑,这类调用会提前触发配置解析
    • 检查是否存在遍历依赖配置、在配置阶段后期修改classpath类配置属性的逻辑,所有对依赖配置的修改需要放在配置阶段早期执行,避免在配置解析完成后操作
    • 临时兼容方案:如果短时间内无法定位具体问题点,可以在项目根目录的gradle.properties文件中添加配置android.dependencyResolutionAtConfigurationTime.disallow=false绕过校验,注意该配置仅为临时兼容方案,后续高版本Gradle会移除该开关,不建议长期依赖。
  3. 清理缓存重试
    完成上述修改后,先执行./gradlew clean命令清理构建缓存,再通过Android Studio的File -> Invalidate Caches... 选项清除IDE缓存并重启,重新触发Gradle同步即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 02:01:24