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的主要内容,如果未能解决你的问题,请参考以下文章
Gradle 同步失败:com.android.tools.idea.gradle.project.sync.idea.issues.SdkPlatformNotFoundException:模块:找
Android踩坑小记:ndk版本与Android Gradle Plugin版本兼容