【AS】Error:Android Gradle plugin requires Java 11

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

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


网络异常,图片无法展示
|


原因是 AGP 7.0后必须使用 Java 11,而跳过版本5、6的原因是让 AGP的版本号与Gradle版本号相匹配,比如:AGP 7.x对应Gradle 7.x的API。具体讲解可见:《AGP 7.0: Next major release for the Android Gradle plugin》


使用 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


参考文献:




相关文章
|
16天前
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【4月更文挑战第3天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin的兴起,其在Android开发中的地位逐渐上升,但关于其与Java在性能方面的对比,尚无明确共识。本文通过深入分析并结合实际测试数据,探讨了Kotlin与Java在Android平台上的性能表现,揭示了在不同场景下两者的差异及其对应用性能的潜在影响,为开发者在选择编程语言时提供参考依据。
|
29天前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【2月更文挑战第30天】 随着Kotlin成为开发Android应用的首选语言,开发者社区对于其性能表现持续关注。本文通过深入分析与基准测试,探讨Kotlin与Java在Android平台上的性能差异,揭示两种语言在编译效率、运行时性能和内存消耗方面的具体表现,并提供优化建议。我们的目标是为Android开发者提供科学依据,帮助他们在项目实践中做出明智的编程语言选择。
|
1月前
|
安全 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【2月更文挑战第24天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin在Android开发中的普及,了解其与Java在性能方面的差异变得尤为重要。本文通过深入分析和对比两种语言的运行效率、启动时间、内存消耗等关键指标,揭示了Kotlin在实际项目中可能带来的性能影响,并提供了针对性的优化建议。
27 0
|
21天前
Error:java.util.zip.ZipException: duplicate entry: com/google/firebase/iid/zzc.class ,EvalIssueExcep
Error:java.util.zip.ZipException: duplicate entry: com/google/firebase/iid/zzc.class ,EvalIssueExcep
7 0
|
23天前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
在开发高性能的Android应用时,选择合适的编程语言至关重要。近年来,Kotlin因其简洁性和功能性受到开发者的青睐,但其性能是否与传统的Java相比有所不足?本文通过对比分析Kotlin与Java在Android平台上的运行效率,揭示二者在编译速度、运行时性能及资源消耗方面的具体差异,并探讨在实际项目中如何做出最佳选择。
17 4
|
1月前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【2月更文挑战第24天】 在移动开发领域,性能优化一直是开发者关注的重点。随着Kotlin的兴起,许多Android开发者开始从传统的Java转向Kotlin进行应用开发。本文将深入探讨Kotlin与Java在Android平台上的性能表现,通过对比分析两者在编译效率、运行时性能和内存消耗等方面的差异。我们将基于实际案例研究,为开发者提供选择合适开发语言的数据支持,并分享一些提升应用性能的最佳实践。
|
8天前
|
Java Maven
【Java报错】显示错误“Error:java: 程序包org.springframework.boot不存在“
【Java报错】显示错误“Error:java: 程序包org.springframework.boot不存在“
32 3
|
23天前
|
Java Maven
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
11 0
|
1月前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能对比
【2月更文挑战第28天】 在Android开发领域,Kotlin作为一种现代编程语言,逐渐取代了传统的Java语言。本文通过深入分析Kotlin和Java在Android平台上的性能差异,揭示两者在编译效率、运行速度以及内存消耗等方面的比较结果。我们将探讨Kotlin协程如何优化异步编程,以及Kotlin Extensions对提升开发效率的贡献。同时,文中还将介绍一些性能优化的实践技巧,帮助开发者在Kotlin环境下构建更加高效的Android应用。
|
1月前
|
安全 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【2月更文挑战第27天】 在Android开发领域,Kotlin和Java一直是热门的编程语言选择。尽管两者都可以用于创建高质量的Android应用程序,但它们在性能方面的差异一直是开发者关注的焦点。本文通过深入分析Kotlin与Java在Android平台上的运行效率、编译时间及内存消耗等方面的表现,揭示两种语言在实际应用中的性能差异,帮助开发者根据项目需求做出更明智的选择。