安卓项目升级Gradle至7.0.2后Gitlab流水线运行失败如何解决
问题现象
使用Android Studio搭配Java开发安卓应用,将Gradle升级到7.0.2版本后,GitLab流水线运行失败,报错信息如下:
FAILURE: Build failed with an exception. * Where: Build file '/builds/kbinform/education72-android/Edu72/build.gradle' line: 1 * What went wrong: A problem occurred evaluating project ':Edu72'. > Failed to apply plugin 'com.android.internal.application'. > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8. You can try some of the following options: - changing the IDE settings. - changing the JAVA_HOME environment variable. - changing `org.gradle.java.home` in `gradle.properties`.
报错翻译:
构建失败,出现异常。
异常位置:/builds/kbinform/education72-android/Edu72/build.gradle文件第1行
问题原因:评估:Edu72模块时出错,无法应用com.android.internal.application插件,Android Gradle插件需要Java 11运行,当前使用的是Java 1.8。
可选解决方案:修改IDE设置、修改JAVA_HOME环境变量、修改gradle.properties中的org.gradle.java.home配置。
已尝试修改本地Android Studio的IDE设置,问题仍未解决。
解决方案
修改本地IDE配置仅作用于本地开发环境的构建流程,不会影响GitLab远端Runner的运行环境,需要针对流水线环境单独配置JDK版本,按以下步骤操作即可:
- 调整GitLab CI配置文件
.gitlab-ci.yml,指定包含JDK11的安卓构建镜像作为运行环境,示例配置如下:
image: openjdk:11-android stages: - build build_app: stage: build script: - chmod +x gradlew - ./gradlew assembleRelease
- 如果你使用的是自建私有Runner,可直接在Runner节点上安装JDK11,再配置系统环境变量
JAVA_HOME指向JDK11的安装路径,也可以在项目根目录的gradle.properties文件中添加如下配置指定JDK路径(路径需和Runner节点的实际路径一致):
org.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64
- 在模块级
build.gradle文件中添加编译版本配置,统一构建使用的Java版本:
android { // 其他现有配置 compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } }
内容的提问来源于stack exchange,提问作者Дмитрий Сиюткин
相关产品推荐
相关产品推荐

