Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.

Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.,第1张

〇、出现问题

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

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

An exception occurred applying plugin request [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.
     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`.

以上描述是说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:
#distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
2、Gradle插件版本改为 4.2.2:
//classpath "com.android.tools.build:gradle:7.0.3"
classpath "com.android.tools.build:gradle:4.2.2"
3、修改settings.gradle文件:

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

/*dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        jcenter() // Warning: this repository is going to shut down soon
    }
}*/
rootProject.name = "Demo211204"
include ':app'
4、修改项目下的build.gradle文件:

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

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        //classpath "com.android.tools.build:gradle:7.0.3"
        classpath "com.android.tools.build:gradle:4.2.2"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        jcenter() // Warning: this repository is going to shut down soon
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

具体修改我放在这个项目里了: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了:

需要说明的是:

最新版的Android Studio默认就包含JDK 11(在Android Studio 安装目录的jre目录下),所以无需我们进行安装。此处配置的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 后应用确定,再次构建项目即可成功。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/992105.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存