Android项目本地运行正常但在Azure Pipeline上运行失败解决方案
问题说明
Android项目本地可正常编译运行,但在Azure Pipeline执行构建时失败,报错信息如下:
应用插件'com.android.internal.application'失败。
Android Gradle插件运行需要Java 11版本支持,当前使用的Java版本为1.8。
当前JDK所在路径为:/Users/runner/hostedtoolcache/Java_Temurin-Hotspot_jdk/8.0.332-9/x64/Contents/Home/jre
您可尝试以下解决方法:
- 修改IDE设置。
- 修改JAVA_HOME环境变量。
- 修改
gradle.properties文件中的org.gradle.java.home配置。

根因
本地开发环境已经配置了满足Android Gradle Plugin(AGP)要求的JDK 11,因此本地编译运行正常;Azure Pipeline构建环境默认使用JDK 8作为运行时,版本达不到AGP的最低运行要求,直接导致插件加载失败。
修复步骤
推荐优先修改流水线配置,不需要改动项目代码,不影响本地开发流程:
- 在Pipeline的YAML构建文件中,在Gradle构建任务执行前新增JDK版本指定步骤,该步骤会自动将构建环境的
JAVA_HOME切换到预装的JDK 11路径,配置参考:
# 放置在./gradlew assemble、./gradlew test等Gradle任务之前 - task: JavaToolInstaller@0 inputs: versionSpec: '11' jdkArchitectureOption: 'x64' jdkSourceOption: 'PreInstalled'
- 排查现有流水线的配置项,删除所有硬编码指向JDK 8路径的
JAVA_HOME赋值、以及Gradle启动参数中指定旧版Java路径的配置,避免覆盖JDK版本切换逻辑。 - 从报错的JDK路径判断你当前使用的是macOS构建池,Azure官方维护的
macOS-latest、macOS-12、macOS-13镜像都预装了Temurin JDK 11,不需要额外执行JDK下载操作。
避坑提醒
禁止在项目根目录的gradle.properties中硬编码你本地设备的JDK路径作为org.gradle.java.home的值,这类本地私有路径在流水线环境、其他开发人员的设备上都不存在,会触发新的构建错误。JDK版本统一交给CI工具配置或者Gradle官方工具链机制管理即可。
内容的提问来源于stack exchange,提问作者Abhishek Srivastava
相关产品推荐
相关产品推荐

