ASError:Android Gradle plugin requires Java 11

Posted bug樱樱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASError:Android Gradle plugin requires Java 11相关的知识,希望对你有一定的参考价值。

最近开始折腾Jetpack,Clone一个MVVN的项目,AS打开,Terminal编译出现下述错误:

原因是 AGP 7.0后必须使用 Java 11,而跳过版本5、6的原因是让 AGP的版本号与Gradle版本号相匹配,比如:AGP 7.x对应Gradle 7.x的API。

使用 AGP 7.0(android Gradle Plugin) 构建时需要 JDK 11才能运行Gradle,AS更新到 Android Studio Arctic Fox,直接捆绑了 免费的OpenJDK 11 并将Gradle配置默认使用它,一般就可以直接用了,如果不行再进行 手动配置 亦可~

Tips:从错误提示就可以知道有三种方法可以解决~

0x1、AS手动配置

依次选中项目右键:Open Module Settings

接着新旧AS会有区别,先是 老版本

OpenJdk 11可以到这里下载:Archived OpenJDK General-Availability Releases

然后是 新版本

点开,Gradle JDK选择11

一路OK,重新Rebuild项目即可,当然也可以到 Settings/Preferences,如图所示处修改~

上述入口还可以从Gradle的设置进入:

0x2、修改gradle.properties

手动配置完AS,可能出现一种情况:AS可以跑,Terminal跑 gradlew clean build 还是报错,可以在 gradle.properties 文件中指定java home的路径:

# Windows示例
org.gradle.java.home=D\\:\\\\Coding\\\\AS\\\\jre

# Mac、Linux示例
org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home 

这样做的好处是,电脑全局的JAVA_HOME环境变量不受影响,依旧可以是jdk 1.8,起来依赖到的应用不受影响。

0x3、修改JAVA_HOME

当然,你硬要把环境变量改成11亦可,如:

重启AS,然后Terminal键入:gradlew -v

可以看到此时的JVM为:11.0.11,其他系统修改环境变量,MAC修改示例如下:

# 查看jdk所在位置
/usr/libexec/java_home -V

# 设置环境变量
vi ~/.bash_profile

# 把jdk1.8.0_172.jdk改成对应11的目录
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# esc退出输入模式,键入下述目录保存
wq

# 更新配置文件
source ~/.bash_profile 

文末

我总结了一些Android核心知识点,以及一些最新的大厂面试题、知识脑图和视频资料解析。

需要的小伙伴直接点击文末小卡片免费领取哦,以后的路也希望我们能一起走下去。(谢谢大家一直以来的支持,需要的自己领取)

Android学习PDF+架构视频+面试文档+源码笔记

部分资料一览:

  • 330页PDF Android学习核心笔记(内含8大板块)

  • Android学习的系统对应视频

  • Android进阶的系统对应学习资料

  • Android BAT大厂面试题(有解析)

领取地址:

创作打卡挑战赛 赢取流量/现金/CSDN周边激励大奖

以上是关于ASError:Android Gradle plugin requires Java 11的主要内容,如果未能解决你的问题,请参考以下文章

Android Scala 和 Gradle

函数错误(类型、msg、asError = TRUE)

Gradle 同步失败:com.android.tools.idea.gradle.project.sync.idea.issues.SdkPlatformNotFoundException:模块:找

Android踩坑小记:ndk版本与Android Gradle Plugin版本兼容

Android踩坑小记:ndk版本与Android Gradle Plugin版本兼容

Android踩坑小记:ndk版本与Android Gradle Plugin版本兼容