今天把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 后应用确定,再次构建项目即可成功。
个人也最推荐第三种方法,问题解决的更为彻底。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)