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

Ven*_*ine 201 android gradle android-studio android-gradle-plugin

我下载了最新的 Android Studio,我想运行 Android Jetpack Compose 项目,但是当我运行时,出现错误:

    > 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`.
Run Code Online (Sandbox Code Playgroud)

我已经下载了 Java 11,并在 gradle.properties 中添加了 java 11。

org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk-11.0.10.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

JAVA_HOME 显示 Java 11,但我运行,它不起作用, /Library/Java/JavaVirtualMachines/jdk-11.0.10.jdk/Contents/Home

我应该怎么做?

我的 Android Studio 版本 在此处输入图片说明

我的 Java 版本

    java 11.0.10 2021-01-19 LTS
    Java(TM) SE Runtime Environment 18.9 (build 11.0.10+8-LTS-162)
    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.10+8-LTS-162, mixed mode)
Run Code Online (Sandbox Code Playgroud)

我的 gradle-wrapper.properties

    distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-bin.zip
Run Code Online (Sandbox Code Playgroud)

build.gradle 类路径

    classpath "com.android.tools.build:gradle:7.0.0-alpha13"
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31"
Run Code Online (Sandbox Code Playgroud)

构建.gradle

    plugins {
    id 'com.android.application'
    id 'kotlin-android'
    }

android {
    compileSdk 30

    defaultConfig {
        applicationId "com.example.testandroid3"
        minSdk 21
        targetSdk 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary true
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
    kotlinOptions {
        jvmTarget = "11"
        useIR = true
    }
    buildFeatures {
        compose true
    }
    composeOptions {
        kotlinCompilerExtensionVersion compose_version
        kotlinCompilerVersion '1.4.31'
    }
}

java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(11))
    }
}

dependencies {

    implementation 'androidx.core:core-ktx:1.3.2'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.2.1'
    implementation "androidx.compose.ui:ui:$compose_version"
    implementation "androidx.compose.material:material:$compose_version"
    implementation "androidx.compose.ui:ui-tooling:$compose_version"
    implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0'
    implementation 'androidx.activity:activity-compose:1.3.0-alpha02'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version"
}
Run Code Online (Sandbox Code Playgroud)

M T*_*ski 417

确保您gradle使用的是正确的 JDK。尝试./gradlew --version在您的项目目录中运行,输出应该是这样的:

Gradle 7.0-rc-2
------------------------------------------------------------

Build time:   2021-04-01 21:26:39 UTC
Revision:     912a3368b654b71250dfc925a20d620393

Kotlin:       1.4.31
Groovy:       3.0.7
Ant:          Apache Ant(TM) version 1.10.9 compiled on September 27 2020
JVM:          11.0.10 (Ubuntu 11.0.10+9-Ubuntu-0ubuntu1.20.10)
OS:           Linux 5.11.4-051104-generic amd64
Run Code Online (Sandbox Code Playgroud)

如果 JVM 指向 1.8 版,那么您应该在设置中更改它。你可以在Preferences > Build, Execution, Deployment > Build Tools > Gradle > Gradle JDK

在此处输入图片说明

  • **将 Gradle JDK 更改为 11、清理项目、重建项目**对我有用!另请检查您的 *jvmTarget*、*sourceCompatibility* 和 *targetCompatibility* 是否设置为 java 11 ```compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = '11' }``` (27认同)
  • 我已经这样设置了,但是还是不行。 (13认同)
  • @ismailshah您需要将其放入项目的“build.gradle”文件中。但是,我相信这不会有帮助。确保您的系统(操作系统)具有 Java 11,因为仅更改 Gradle 设置对我没有帮助。在 MacOS 上,我使用 `sdkman` 来安装和使用 jdk 11。安装后,我在 `./gradlew -verion` 中看到了用户 Java 的正确值,并且项目再次开始正常构建。 (8认同)
  • 我什至无法在您显示的路径中找到构建工具! (4认同)
  • 奇怪的是,“Build Tools => Gradle”中的设置已设置为 11,但是当我执行“flutter doctor -v”时,它显示“1.8” (4认同)
  • 就我而言,./gradelw --version 显示 JVM 是 15.0.1,但首选项 → 构建、执行、部署 → 构建工具 → Gradle → *Gradle JDK 显示 1.8。所以它们似乎无关紧要。我将其更改为 11 并且有效。谢谢! (4认同)
  • 谢谢,我重新启动 Android Studio,清除缓存,然后就可以了。 (2认同)
  • 真的很有用。我还必须清除在这些位置指定的“JAVA_HOME”目录:“.bash_profile”、“.profile”和“.bashrc”文件(Ubuntu 18.04)。现在 Java 11 对我来说工作得很好,无论是在 Gradle 中还是在终端中 (2认同)
  • 如果此设置(首选项 → 构建、执行、部署 → 构建工具 → Gradle → *Gradle JDK。)不起作用。尝试在此下拉列表中选择“下载 JDK...”并选择 Amazon 版本。它帮助到我。 (2认同)
  • 这个解决方案不是永久的,对于每个新项目我们都要重新做一遍,它必须是一个永久的解决方案。 (2认同)

Sam*_*ath 297

对于 Android Studio Arctic Fox (4.2),在 Windows 10 Pro PC 上安装 2020.3.1 补丁 2:

步骤1

在此输入图像描述

第2步

在此输入图像描述

  • 这是最新的 Android Studio Art Fox 的解决方案 (16认同)
  • 像你说的那样改了。但是当我运行 ./gradlew --version 时它仍然显示 JVM 1.8 (12认同)
  • 当前的 Mac 版本没有“Android”级别或扳手图标。您可以在“首选项”中的“构建、执行、部署”下找到 Gradle JDK。 (7认同)
  • 我的 android studio 在构建工具中没有这个 gradle 选项。 (7认同)
  • 这有效:-) (2认同)

Ola*_*röm 167

如果您在 Windows 10 上使用 Android Studio (Arctic Fox 2020.3.1)。

这是修复构建失败错误的方法:

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

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

  1. 打开项目结构...

    (来自工具栏)
    工具栏上的项目结构

    (或从文件菜单)
    文件菜单上的项目结构...

  2. 单击Gradle 设置链接

    Gradle 设置链接

  3. 从Gradle JDK下拉列表中选择正确的 Java JDK

    在此输入图像描述

注意:如果您找不到正确的Java JDK,那么您首先需要下载并安装它......

  • 也修复了 mac :) (7认同)
  • 这也适用于 Linux,而且...你救了我的命! (2认同)

SAN*_*NAT 51

Android Studio Arctic Fox (4.2) 含 2020.3.1 补丁 3 - Mac

您只需从首选项的 Gradle 设置中选择嵌入式 JDK 版本 11.0.10 即可。

在此输入图像描述

  • 我没有看到“Gradle JDK”选项 (21认同)
  • 打开android模块,看看是否是一个flutter项目。您只会在 android 模块中看到此 Gradle JDK 选项。@卢克·皮盖蒂 (2认同)

Opt*_*rog 41

这就是我在 macOS 上修复它的方法。

\n
./gradlew --version\n
Run Code Online (Sandbox Code Playgroud)\n

在此输入图像描述

\n

转到首选项\xe2\x86\x92构建、执行、部署\xe2\x86\x92 Gradle

\n

在此输入图像描述

\n

将 Gradle JDK 更改为最新版本。

\n

在此输入图像描述

\n

在安装 Android Studio 之前,我只安装了一个 JDK(Microsoft build OpenJDK 17)。由于未知原因,JDK 1.8 已随 Android Studio 安装并设置为 Gradle 默认值:/Users/<username>/Library/Java/JavaVirtualMachines/corretto-1.8.0_322

\n

  • 我没有看到“Gradle JDK”选项 (7认同)
  • 谢谢你。选择“嵌入式 JDK 版本 11.0.11”在我的 M1 mac 上对我有用。 (2认同)
  • `转到首选项 -&gt; 构建、执行、部署 -&gt; 构建工具 -&gt; Gradle` (2认同)

Abi*_*Ali 40

macOS M1上我通过以下步骤解决了这个问题。

  1. Visual Studio Code中打开文件~/.zshrc

  2. 添加了这一行:

    export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/Contents/Home"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 已保存文件

  4. 通过运行重新加载修改后的文件的终端

    source ~/.zshrc
    
    Run Code Online (Sandbox Code Playgroud)
  5. 测试是否已通过运行加载更改

    echo $JAVA_HOME
    
    Run Code Online (Sandbox Code Playgroud)
  6. 已验证是否显示正确的位置。

  7. 通过运行验证 Gradle 是否显示正确的 Java 11 版本

    cd android
    ./gradlew --version
    
    Run Code Online (Sandbox Code Playgroud)

这是结果:

------------------------------------------------------------
Gradle 7.3.3
------------------------------------------------------------

Build time:   2021-12-22 12:37:54 UTC
Revision:     6f556c80f945dc54b50e0be633da6c62dbe8dc71

Kotlin:       1.5.31
Groovy:       3.0.9
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          11.0.12 (JetBrains s.r.o. 11.0.12+0-b1504.28-7817840)
OS:           Mac OS X 12.2.1 aarch64
Run Code Online (Sandbox Code Playgroud)

尝试通过运行再次构建它:

yarn android
Run Code Online (Sandbox Code Playgroud)

并且成功了。


小智 38

在 Android Studio 中我刚刚这样做了:

\n

首选项\xe2\x86\x92构建、执行、部署\xe2\x86\x92构建工具\xe2\x86\x92 Gradle

\n

十分简单。

\n

首选项->构建、执行、部署->构建工具-> Gradle

\n


Faz*_*eng 30

我又下载了11 JDK,可以用了。这可以节省您的时间,因为您不必清除缓存、构建和重建项目。

\n

下载新的JDK(再次选择版本11或更高版本)

\n


小智 24

当我升级到Android Studio 15 (Dolphin) 时,我遇到了这个错误,而且修复起来非常容易。这个答案是最简单、最快、最好的......

\n

在 Android Studio 中我刚刚这样做了:

\n

首选项\xe2\x86\x92构建、执行、部署\xe2\x86\x92构建工具\xe2\x86\x92 *Gradle。选择Java 11或12等。

\n

十分简单

\n

看图片。

\n

在此输入图像描述

\n


小智 17

你可以这样做(菜单File \xe2\x86\x92 Build选项):

\n

菜单文件 -> 构建选项

\n


Lak*_*hna 16

如果您使用的是MS App Center,那么当您在 Android 项目中使用 Java\xc2\xa011 时,您可能会遇到同样的问题。如果您正在寻找 MS 应用中心问题的解决方案。这可能对你有帮助!

\n
    \n
  • https://appcenter.ms/users/user1/apps/yourapp/build/branches
  • \n
  • 单击设置图标转到Build configuration
  • \n
  • 向下滚动Environment并打开。
  • \n
  • 设置JAVA_HOME$(JAVA_HOME_11_X64)
  • \n
\n

在此输入图像描述

\n

  • 这很有效,伙计,你是救星 xD,谢谢你 (3认同)

Sam*_*oom 14

你可以用这个简单的方法解决它。

  1. 转至https://www.oracle.com/java/technologies/javase-jdk16-downloads.html

  2. 下载系统的 jdk zipfile。(让我们说窗户)

  3. 将其解压缩到您的 PC 主目录下的任何具有高权限的文件夹中

  4. 现在打开并转到位于File > Project structure 的Android Studio 项目结构

  5. 并将解压 jdk 版本的目录粘贴到这里,如您所见,我的现在是 jdk 16 并安装在该目录中,如图所示在此处输入图片说明


Dan*_*iel 11

在 Mac 上,仅将 JAVA_HOME 设置为嵌入到 Android Studio 的 JDK 11 会有帮助。

我在命令行中使用以下命令完成了此操作:

export JAVA_HOME=ENTER_PATH_TO_JDK_HERE
Run Code Online (Sandbox Code Playgroud)

PATH_TO_JDK可能是这样的/Users/userName/Library/Application\ Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7583922/Android\ Studio.app/Contents/jre/Contents/Home


小智 11

对于使用 Visual Studio Code 的Flutter项目

将其添加到文件gradle.properties

org.gradle.java.home=<path to JDK 11>
Run Code Online (Sandbox Code Playgroud)

例子:

C:\\Program Files\\Java\\jdk-11.0.15
Run Code Online (Sandbox Code Playgroud)

gradle.properties


Coo*_*ind 10

gradlew ktlintFormat在 Terminal of Arctic Fox build 中启动时出现此错误。

  1. 我打开了项目结构(文件 > 项目结构)并选择了 Java 11,但即使在重新启动 Android Studio 后它也没有帮助。

在此处输入图片说明

  1. 然后我在设置中更改了 Java 路径(请参阅接受的答案),但没有帮助。你应该设置它。

  2. 我尝试更改 Windows 系统变量并更改JAVA_HOME.

简短的方法cmd以管理权限运行并写入:setx /M JAVA_HOME "C:\Program Files\Java\jdk-11.0.11",然后重新启动 Android Studio)

Win+ X,按“系统”,输入“va”。

在此处输入图片说明

在此处输入图片说明

我按下了“编辑”按钮和“浏览目录...”,然后选择bin了 Java 11 的JRE(或 JDK)文件夹(没有)。然后确定,确定(一如既往)。

在此处输入图片说明

  1. 我打开cmd(Windows 中的命令行)并输入:%JAVA_HOME%. 它给我写了这个错误:

'C:\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件。

查看https://confluence.atlassian.com/doc/setting-the-java_home-variable-in-windows-8895.html我发现我们应该替换Program FilesProgra~1(是的,这个 DOS 技巧仍然有效)。因此,如下图所示再次替换 JAVA_HOME。

在此处输入图片说明

  1. 重新启动 Android Studio 或重置计算机。

  • 我在 MacOS 上也遇到了同样的问题。将 Gradle JDK 设置为版本 11,构建现在可以工作了。 (2认同)

Ali*_*oor 10

我刚刚遇到了同样的问题 -

\n
\n

Android Gradle 插件需要 Java 11 才能运行

\n
\n

通过在菜单Settings \xe2\x86\x92 Build, Execution, Deployment \xe2\x86\x92 Build Tools \xe2\中将Gradle JDK的值“JDK 1.9”替换为“Android Studio SDk default JD 11.0.11”来解决该问题x86\x92摇篮

\n


com*_*m1x 10

对于 macOS 用户

macOS 中捆绑的 JDK 是 1.8,但现在我们需要 11。让 Gradle 使用 AndroidStudio 的 JDK 来构建项目:

进入文件<PROJECT_ROOT>/gradle.properties,添加行:

org.gradle.java.home=/Users/.../Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/.../Android Studio.app/Contents/jre/Contents/Home
Run Code Online (Sandbox Code Playgroud)

注意:如果您不使用 Jetbrains Toolbox并且已将 Android Studio 安装到 中/Application,请改用此路径(感谢 @AndrewBekhtold):

org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/Contents/Home
Run Code Online (Sandbox Code Playgroud)

  • 对于 Mac Silicon,您可能需要使用 `org.gradle.java.home=/Applications/Android Studio.app/Contents/jbr/Contents/Home` (2认同)

Kur*_*chy 10

\xe2\x9a\xa0\xef\xb8\x8f 注意:如果您在GitHub Actions Pipeline

\n

如果您在项目中使用Java 11,但构建应用程序的 GitHub Action Pipeline 设置为使用 Java 1.8,您将收到此错误。

\n

要修复它,请替换以下内容:

\n
      - name: set up JDK 1.8\n        uses: actions/setup-java@v1\n        with:\n          java-version: 1.8\n
Run Code Online (Sandbox Code Playgroud)\n

和:

\n
      - name: set up JDK 11\n        uses: actions/setup-java@v3\n        with:\n          distribution: \'zulu\'\n          java-version: 11\n
Run Code Online (Sandbox Code Playgroud)\n


小智 10

这里的所有解决方案都对 Java 11 有帮助。但是如果您不想升级到 Java 11,那么您应该将 Android Gradle 插件 (ADP) 降级到 4.X,如下所示:

在此输入图像描述


小智 9

我得出的结论是,无论 Android Studio 设置如何,Gradle 都会调用系统上安装的 Java 版本。

在 macOS 上,使用以下命令检查系统中已安装的 Java 版本列表:

/usr/libexec/java_home -V
Run Code Online (Sandbox Code Playgroud)

如果其中没有Java 11或更高版本,您将得到像问题作者一样的错误。

解决方案是安装 Java 11 或更高版本。

第二种解决方案是使用~/Library/Java/JavaVirtualMachines/以下命令在文件夹中创建指向 Android Studio 中嵌入的 JRE 的符号链接:

ln -s "/Applications/Android Studio.app/Contents/jre" "~/Library/Java/JavaVirtualMachines/Android Studio Default JRE"
Run Code Online (Sandbox Code Playgroud)

此外,您可以将此行添加到~/.zshenv

export JAVA_HOME=/usr/libexec/java_home
Run Code Online (Sandbox Code Playgroud)

如果需要,您可以获取不同 Java 版本的安装路径:

/usr/libexec/java_home -v 11
Run Code Online (Sandbox Code Playgroud)

或者

/usr/libexec/java_home -v 1.8
Run Code Online (Sandbox Code Playgroud)


Dav*_*Ups 9

如果您当前使用的是 Android Studio Arctic Fox (4.2):

\n
    \n
  • 您可以手动设置 Gradle JDK(菜单Preferences \xe2\x86\x92 Build Tools \xe2\x86\x92 Gradle \xe2\x86\x92 Gradle JDK(使用或下载 JDK 11))
  • \n
  • 恢复默认设置,不要在所有项目中执行前面的提示(菜单File \xe2\x86\x92 Manage IDE settings \xe2\x86\x92 Restore Default Settings
  • \n
\n

  • compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = "11" useIR = true } &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; 当我们迁移到 java 11 时,是否需要在 gradle 文件中添加? (2认同)

Yuv*_*raj 9

    \n
  • 对于最新版本,这适用于我的 Windows 计算机

    \n
  • \n
  • 菜单文件\xe2\x86\x92项目结构

    \n

    项目

    \n
  • \n
  • 从您安装的计算机中选择 JDK 11

    \n
  • \n
  • 单击ApplyOK

    \n
  • \n
  • 完成这些更改后重新启动 Android Studio

    \n
  • \n
  • 现在,你可以走了

    \n
  • \n
\n

在此输入图像描述

\n


小智 8

当我更新需要 JAVA 11 的 android studio 中的依赖项时出现此错误。您只需要按照以下步骤操作即可。

(1) 下载JAVA 11,mac下载dmg,windows下载zip文件。链接:下载JAVA 11

(2) 在 Android Studio 中选择选项在此处输入图片说明

按照步骤并选择您新保存的 JAVA Sdk在此处输入图片说明

按照步骤并选择您新保存的 JAVA Sdk在此处输入图片说明

(按照步骤选择你新保存的JAVA Sdk)


Rod*_*ell 6

我通过将其添加到 gradle.properties 文件中解决了这个问题:

org.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64
Run Code Online (Sandbox Code Playgroud)

但您的 Java 11 可能位于不同的目录中。

Windows 的示例路径:

org.gradle.java.home=C\:\\Program Files\\Java\\jdk-13.0.2
Run Code Online (Sandbox Code Playgroud)


Chr*_*ris 5

当我第一次尝试运行基准测试样本时遇到了类似的问题。

\n

运行示例的指令是执行

\n

./gradlew macrobenchmark:cC

\n

在 IDE 终端中,但在我的例子中,这导致了同样的错误。

\n

我已经尝试了上面 M Tomczy\xc5\x84ski 接受的答案,但这对我不起作用。我相信这是我现有配置的结果JAVA_HOME(可以在此处找到)。

\n

这也意味着选项 2(更改我的JAVA_HOME配置)不是一个选项。

\n

对我来说确实有效的改变是上面建议中的选项 3。我从上面的答案中检查了 Java 11 的路径,并将其添加到 中gradle.properties,然后根据 IDE 提示同步 gradle,并成功重新运行 Macrobenchamark gradle 命令。

\n

org.gradle.java.home=/Applications/Android Studio Preview.app/Contents/jre/Contents/Home

\n


小智 5

在 Android Studio Arctic Fox (4.2)中,将 Gradle JDK 更改为 11 对我有用:

\n

步骤1:

\n

导航至: 菜单文件\xe2\x86\x92设置\xe2\x86\x92构建、执行、部署\xe2\x86\x92构建工具\xe2\x86\x92 Gradle

\n

第2步:

\n

将 Gradle JDK 更改为 11,位于 Gradle 项目下方。

\n

步骤3:

\n

申请重建项目

\n


gen*_*ser 5

将Java Home路径添加到wrapper.properties

\n

在 Android Studio 首选项中更改 Gradle JDK 对我来说不起作用。

\n

但我能够通过添加org.gradle.java.home路径来纠正 JDKgradle-wrapper.properties文件中添加路径来更正 JDK。

\n
distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\nzipStoreBase=GRADLE_USER_HOME\nzipStorePath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributions/gradle-7.4-all.zip\n\n# I had to add this line (macOS)\norg.gradle.java.home=/Applications/Android Studio.app/Contents/jre/Contents/Home\n
Run Code Online (Sandbox Code Playgroud)\n

我通过进入菜单File \xe2\x86\x92 Project Structure \xe2\x86\x92 SDKs \xe2\x86\x92 选择要使用的 JDK \xe2\x86\x92 JDK home path找到了 JAVA_HOME 路径找到了 JAVA_HOME 路径。

\n

在此输入图像描述

\n

之后,我能够再次运行Gradle Wrapper (gradlew ) 命令。

\n


归档时间:

查看次数:

46019 次

最近记录:

4 年,4 月 前