赞
踩
今天把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 7.X报错,那就降低Gradle版本。找到不久之前创建的可以成功编译的项目(https://github.com/beita08/Demo210712Git),对比两个新项目的不同之处,进行修改。
- #distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
- distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
- //classpath "com.android.tools.build:gradle:7.0.3"
- classpath "com.android.tools.build:gradle:4.2.2"
根据新的提示信息对比新旧项目的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'
在项目下的 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配置中的Gradle JDK版本来解决此问题。
依次点开 File | Settings | Build, Execution, Deployment | Build Tools | Gradle,修改Gradle JDK 为 JDK(11)即可。
以上修改完成后,可以查看 .idea/gradle.xml 文件里的gradleJvm配置已经由1.8修改为11了:
需要说明的是:
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 后应用确定,再次构建项目即可成功。
个人也最推荐第三种方法,问题解决的更为彻底。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。