Azure DevOps Pipeline中Gradle构建Android项目失败
从构建日志的核心提示可以看出,问题根源是Gradle构建工具自身依赖的JDK版本不兼容:
Incompatible because this component declares a component for use during compile-time, compatible with Java 11 and the consumer needed a component for use during runtime, compatible with Java 8
Android Gradle Plugin(AGP)8.0.0及以上版本要求Gradle运行在JDK 11环境中,你之前修改的是app模块的compileOptions,这仅控制应用代码的编译版本,而非Gradle工具本身使用的JDK版本。
解决方案步骤
1. 配置项目Gradle的JDK版本
修改项目根目录的gradle.properties文件,添加或更新以下配置,指定Gradle使用JDK 11:
org.gradle.java.home=/path/to/your/jdk11
如果是在Android Studio中开发,也可以通过File > Project Structure > SDK Location > Gradle Settings选择JDK 11,同步后将配置提交到代码仓库。
2. 在Azure DevOps Pipeline中指定JDK 11
在Gradle构建任务前,添加JDK安装/切换任务,确保Pipeline环境使用JDK 11:
- task: JavaToolInstaller@0 inputs: versionSpec: '11' jdkArchitectureOption: 'x64' jdkSourceOption: 'PreInstalled'
如果使用Microsoft托管代理,ubuntu-latest、windows-latest等镜像默认已预装JDK 11,此任务会自动切换到对应版本。
3. 确认AGP与Gradle版本兼容性
AGP 8.0.0要求Gradle版本至少为8.0,检查根目录gradle/wrapper/gradle-wrapper.properties中的distributionUrl:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
确保Gradle版本与AGP版本匹配(例如AGP 8.1.0对应Gradle 8.0及以上)。
补充说明
你之前尝试的修改app模块compileOptions、更换AGP版本、切换Gradle任务版本,未触及核心问题——Gradle运行依赖的JDK版本。完成上述配置后,即可解决依赖解析失败的问题。
内容的提问来源于stack exchange,提问作者Andres Caicedo

