Android Gradle 插件需要 Java 11 才能运行。您当前使用的是 Java 1.8。错误

Posted

技术标签:

【中文标题】Android Gradle 插件需要 Java 11 才能运行。您当前使用的是 Java 1.8。错误【英文标题】:Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8. Error 【发布时间】:2021-10-07 02:29:51 【问题描述】:

我想用 Jitpackio 发布一个库。当我发布库时,出现以下错误;

"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 版本:7.0.2

My Gradle JDK Version

你能帮帮我吗?

【问题讨论】:

如果它指向旧的 JDK 版本,您是否检查了所有三个选项?到目前为止,您还尝试了哪些其他选项,这些选项很容易理解,特别是如果您在互联网上搜索它们。 【参考方案1】:

问题在于 JitPack.io 是单独使用 JDK1.8 运行的。在项目文件中添加jitpack.yml文件,内容如下:

jdk:
  - openjdk11

当我这样做时,问题就消失了。

【讨论】:

谢谢!这个答案让我很开心! 这应该在官方 JitPack 文档中提到。这就像一个魅力。【参考方案2】:

根据 AGP 发行说明here

使用 Android Gradle 插件 7.0 构建您的应用时,现在需要 JDK 11 来运行 Gradle。 Android Studio Arctic Fox 捆绑了 JDK 11 并将 Gradle 配置为默认使用它,这意味着大多数 Android Studio 用户不需要对其项目进行任何配置更改。

如果您使用 AGP 7.0,则需要 JDK 11。

您可以像下面这样修改 AS JDK 版本(仅影响在 AS 小锤子中运行应用程序构建项目或运行动作) if Android Studio 北极狐 | 2020.3.1你用的。

对于一些使用 AGP 7.0 和命令行构建 android 应用程序

    将 JAVA_HOME 值路径修改为 JDK 11(这将影响环境中的所有项目) 在特殊项目 gradle.properties 文件中声明“org.gradle.java.home = JDK 11 的路径”(仅对本项目有效)

【讨论】:

我正在使用“Android Studio 北极狐 | 2020.3.1”。 Gradle JDK 版本 11.0.10 但没有解决这个问题:( @gokmenBayram 您为修复构建错误做了哪些选项?为什么在构建android库(AAR)时要导入Application插件?【参考方案3】:

在 jitpack github 页面中审查的解决方案: here

如前所述: 您应该在名为的项目的根目录中创建一个文件 jitpack.yml 包含

jdk:
  -openjdk11 

然后将库中的 build.gradle 文件更改为:

apply plugin: 'com.android.library' 
apply plugin:'maven-publish'
.
.
afterEvaluate 
publishing 
    publications 
        release(MavenPublication) 
            from components.release
            groupId = "ntk.android.base"
            artifactId = 'baseActivity'
            version = version
        
    

【讨论】:

【参考方案4】:

在根项目目录中创建jitpack.yml

jdk:
  - openjdk11
before_install:
  - sdk install java 11.0.10-open
  - sdk use java 11.0.10-open

它对我有用。

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案5】:

根据this blog,仅在 gradle 7.0.2 中添加 jitpack.yml 对我不起作用,但更改 gradle jdk 有效

【讨论】:

请将您的答案添加为评论或自行解释。【参考方案6】:

如果end0421的回答没有解决你的问题, 首先无论如何将 Gradle JDK 位置更改为 Embedded 然后您可以直接编辑 compileOptions 下的buid.gradle (Module),如下所示,并确保您已安装了 Java 11。您可以从 Oracle 获得它。

正如您在此处看到的,您必须将sourceCompatibilitytargetCompatibility 都更改为JavaVersion.VERSION_11,然后您可以点击立即同步或重新构建项目并制作项目。

【讨论】:

以上是关于Android Gradle 插件需要 Java 11 才能运行。您当前使用的是 Java 1.8。错误的主要内容,如果未能解决你的问题,请参考以下文章

Android Gradle 插件需要 Java 11 才能运行。您当前使用的是 Java 1.8。错误

错误消息“Android Gradle 插件需要 Java 11 才能运行。您当前使用的是 Java 1.8”

修复“Android Gradle 插件需要 Java 11 才能运行。您当前使用的是 Java 1.8”后,Android Studio 模拟器仍然无法工作

Android Gradle 中的使用ASMified插件生成.class的技巧

Android Gradle 插件将自定义 Gradle 插件上传到自建 Maven 仓库 ② ( java 和 groovy 插件自带文档任务 | 自定义文档打包任务 | 生成文档包 )

Android Gradle 插件gradle.properties 中配置编译参数并在 Java 代码 BuildConfig 中调用该参数