当前位置:   article > 正文

Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8._changing the ide setting

changing the ide setting

〇、出现问题

今天把Android Studio升级到最新版本,并更新最新的SDK:

创建新项目后出现,构建时直接出现如下错误:

  1. An exception occurred applying plugin request [id: 'com.android.application']
  2. > Failed to apply plugin 'com.android.internal.application'.
  3. > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
  4. You can try some of the following options:
  5. - changing the IDE settings.
  6. - changing the JAVA_HOME environment variable.
  7. - changing `org.gradle.java.home` in `gradle.properties`.

以上描述是说Gradle插件需要Java 11 ,而我现在使用的是Java 8。

看了下最新项目的Gradle版本已经是7.0.2:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip

Gradle插件版本是7.0.3:

classpath "com.android.tools.build:gradle:7.0.3"

方法一:降低Gradle版本

出现这个问题,我的第一反应是:既然Gradle 7.X报错,那就降低Gradle版本。找到不久之前创建的可以成功编译的项目(https://github.com/beita08/Demo210712Git),对比两个新项目的不同之处,进行修改。

1、Gradle版本改为 6.7.1:

  1. #distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
  2. distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip

2、Gradle插件版本改为 4.2.2:

  1. //classpath "com.android.tools.build:gradle:7.0.3"
  2. classpath "com.android.tools.build:gradle:4.2.2"

3、修改settings.gradle文件:

根据新的提示信息对比新旧项目的settings.gradle文件,删除settings.gradle文件中的dependencyResolutionManagement方法:

  1. /*dependencyResolutionManagement {
  2. repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
  3. repositories {
  4. google()
  5. mavenCentral()
  6. jcenter() // Warning: this repository is going to shut down soon
  7. }
  8. }*/
  9. rootProject.name = "Demo211204"
  10. include ':app'

4、修改项目下的build.gradle文件:

在项目下的 build.gradle文件中添加 allprojects{} 闭包,最后 build.gradle文件应该是这样:

  1. // Top-level build file where you can add configuration options common to all sub-projects/modules.
  2. buildscript {
  3. repositories {
  4. google()
  5. mavenCentral()
  6. }
  7. dependencies {
  8. //classpath "com.android.tools.build:gradle:7.0.3"
  9. classpath "com.android.tools.build:gradle:4.2.2"
  10. // NOTE: Do not place your application dependencies here; they belong
  11. // in the individual module build.gradle files
  12. }
  13. }
  14. allprojects {
  15. repositories {
  16. google()
  17. mavenCentral()
  18. jcenter() // Warning: this repository is going to shut down soon
  19. }
  20. }
  21. task clean(type: Delete) {
  22. delete rootProject.buildDir
  23. }

具体修改我放在这个项目里了:GitHub - beita08/Demo211204Gradle7.0: 新项目Gradle升级至7.0.2,Gradle插件升级至7.0.3后,出现的问题处理。

以上4步修改完成后,再次构建项目即可成功。

方法二:修改IDE配置

第一种方法虽然可以临时解决问题,但是随着以后版本升级这必然不是长久之策,详细看最初的报错信息,我们还可以通过修改IDE配置中的Gradle JDK版本来解决此问题。

依次点开 File | Settings | Build, Execution, Deployment | Build Tools | Gradle,修改Gradle JDK 为 JDK(11)即可。

以上修改完成后,可以查看 .idea/gradle.xml 文件里的gradleJvm配置已经由1.8修改为11了:

需要说明的是:

  1. 最新版的Android Studio默认就包含JDK 11(在Android Studio 安装目录的jre目录下),所以无需我们进行安装。
  2. 此处配置的Gradle JDK为 Gradle 依赖的 Java 版本,并非 Android Studio 项目依赖的Java版本。

方法三:升级本地JDK版本

Java 8 虽然是一个经典版本,但是 Java 17 LTS 已于2021年9月发布了,Java 11 也已经算不上什么新版本了,安装更新的Java版本也慢慢变得势在必行了。另外,升级本地JDK后记得修改环境变量。

具体的升级方法见:Java 8(JDK 1.8)升级更新至 Java 11(JDK 11)/ Java 17(JDK 17)LTS_beita08的博客-CSDN博客

JDK升级完成后,在File | Settings | Build, Execution, Deployment | Build Tools | Gradle 中下拉 Gradle JDK 选项,即可看见检测到新的JDK:

 选择JDK 17 后应用确定,再次构建项目即可成功。

个人也最推荐第三种方法,问题解决的更为彻底。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/631066
推荐阅读
相关标签
  

闽ICP备14008679号