最近稍微有点空,就新建了一个工程打算捣鼓点新的东西。
新建完一个新的工程之后,发现assembleRelease,包括编译都报错了,具体报错的信息如下
* What went wrong: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`.* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.* Get more help at https://help.gradle.org
看了一下大概的意思是新建工程的build.gradle里面的groovy依赖的是java11版本,而自己电脑上面应该用的还是java8,所以导致了工程无法编译。T.T
这可咋整,虽然可以改动build.gradle里面的内容来解决这个问题,但是每次都这么搞也太繁琐了。
同时也不能直接把java8直接升上去吧。如果升上去的话,可能公司里面的项目无法编译通过了,那就更加得不偿失了。。。遂百度查找解决方式。
搜到比较多的解决方式是这个改动
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8._LMF·的博客-CSDN博客但试了一下,无论怎么改,我这边继续编译的话,还是有这个问题。放弃百度,google了一下,也没有找到特别好的解决方法。
冷静了一下,仔细看了一下AS推荐的解决的方式
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`.
上面这篇博文使用的是 - changing the IDE settings 这个方法来解决这个问题,既然不行,我们看一下后面的两个方法
changing the JAVA_HOME environment variable. 意思是要改变我们的开发环境的javahome,百度了一下看上去有点麻烦,而且感觉可能会影响到现有的工程。
那么只有最后一个解决的方法了
changing `org.gradle.java.home` in `gradle.properties`.
------------------------------------------------------------
接下来是这个问题在我的电脑上面的正解。
------------------------------------------------------------
首先,由于我们本地没有java11的环境,所以我们需要下载一个java11的jdk(jdk地址https://repo.huaweicloud.com/java/jdk/11.0.2+9/jdk-11.0.2_osx-x64_bin.dmg)
jdk安装的时候,一直点next的就行,由于我们对java11只是部分项目级别的依赖,所以我们没有必要进行java11的javahome配置。安装完成之后可以看到我们的
/Library/Java/JavaVirtualMachines 路径下多了一个jdk11的版本
然后我们只需要在工程的 gradle.properties 中添加一个参数即可,比如我这里应该是
org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home
JavaVirtualMachines后面应该是你下载的版本。添加完成之后,同步一下工程,在试一下,编译通过了~
这个是针对mac电脑的,不过应该在window电脑也能通用。
参考:
Mac下安装JDK11(国内镜像)_阿甘兄的技术博客_51CTO博客
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8._LMF·的博客-CSDN博客
来源地址:https://blog.csdn.net/just_hu/article/details/125822130