Docker部署的Jenkins运行Android构建时AGP需Java11实际为Java1.8如何解决
报错详情:
构建文件路径:/var/jenkins_home/workspace/CICDDemo_master/app/build.gradle(第2行)
异常原因:执行id: 'com.android.application'插件申请时抛出异常
错误信息:Failed to apply plugin 'com.android.internal.application'. Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8
问题根因
Docker容器全局的Java版本和Jenkins任务执行时继承的JDK版本不一致,Jenkins进程或任务单独配置了JDK1.8的环境,导致Gradle构建时调用了错误的Java版本。
适配Jenkins场景的解决方案
方案1:修改Jenkins全局JDK配置(对应官方「更改IDE设置」方案)
- 进入Jenkins后台,依次打开
Manage Jenkins→Global Tool Configuration - 找到JDK配置板块,新增JDK11安装条目:可选择自动下载对应版本openjdk11,也可直接填写容器内JDK11的实际安装路径(可在容器内执行
echo $JAVA_HOME获取路径,常见路径为/usr/lib/jvm/java-11-openjdk-amd64) - 打开对应Android构建任务的配置页,在「JDK」下拉选项中选择刚才配置的JDK11,保存后重新构建即可。
方案2:修改JAVA_HOME环境变量
单任务生效
- 打开目标构建任务的配置页,找到「构建环境」板块,勾选「Set environment variables」
- 新增环境变量,键为
JAVA_HOME,值为容器内JDK11的实际安装路径,保存后重新构建。
全局生效
- 修改Jenkins Docker容器的启动命令,添加环境变量参数:
-e JAVA_HOME=容器内JDK11实际安装路径 - 重启容器后所有构建任务默认使用该JDK版本。
方案3:项目级Gradle配置指定JDK
在项目根目录的gradle.properties文件中添加如下配置:
org.gradle.java.home=容器内JDK11的实际绝对路径
注意:填写的路径必须是Jenkins任务执行时可正常访问的容器内路径,不要使用本地开发环境的JDK路径。
配置验证
可在构建任务的「构建」步骤最前面新增一个「Execute shell」步骤,添加如下命令,执行构建后查看输出即可确认任务实际使用的Java版本:
echo $JAVA_HOME java -version
内容的提问来源于stack exchange,提问作者Sachin Gurnani
相关产品推荐
相关产品推荐

