Android Studio错误 Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.

回答 39 浏览 41.2万 2021-04-07

我下载了最新的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`.

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

org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk-11.0.10.jdk/Contents/Home

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

我应该如何做呢?

我的安卓工作室版本

Enter image description here

我的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)

我的gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-bin.zip

build.gradle 类路径

classpath "com.android.tools.build:gradle:7.0.0-alpha13"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31"

文件 build.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"
}
Ven Shine 提问于2021-04-07
39 个回答
#1楼 已采纳
得票数 1193

确保你的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

如果 JVM 指向 1.8 版,那么您应该在设置中更改它。您可以在 Preferences构建、执行、部署构建工具Gradle → *Gradle JDK 中找到它。

Enter image description here

M Tomczynski 提问于2021-04-08
Peter Mortensen 修改于2022-08-17
我已经这样设置了,但它没有发挥作用。Ven Shine 2021-04-09
谢谢,我重新启动了安卓工作室,清除了缓存,然后就可以工作了。Ven Shine 2021-04-10
我甚至无法在你显示的路径中找到 "构建工具"!这是不可能的。dontdownvoteme 2021-07-31
将Gradle JDK改为11,清理项目,重建项目对我来说是有效的!也请检查你的jvmTargetsourceCompatibilitytargetCompatibility是否设置为java 11 compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = '11' }Ahsan Ullah Rasel 2021-08-18
@ismailshah 你需要把它放到你的项目的build.gradle文件中。但是,我相信这不会有帮助。请确保你的系统(OS)有Java 11,因为仅仅改变Gradle设置对我没有帮助。在MacOS上,我用sdkman来安装和使用jdk 11。安装后,我在./gradlew -verion中看到了用户Java的正确值,项目又开始正常构建了。Volodymyr Buberenko 2021-09-21
#2楼
得票数 256

适用于Android Studio Arctic Fox (4.2),在Windows 10 Pro PC上使用2020.3.1补丁2。

第1步

Enter image description here

第2步

Enter image description here

Sampath 提问于2021-09-14
Peter Mortensen 修改于2021-11-15
这就是最新的android studio artic fox的解决方案。Miguel Tomás 2021-09-15
当前的Mac版本没有"Android"级别或扳手图标。你可以在Preferences中的"Build, Execution, Deployment"下找到Gradle JDK。Oscar 2021-09-24
@Oscar 这个解决方案在macOS的最新版本上对我有效。android级只是来自react-native,它的项目结构是这样设置的,因为它有androidios等等。Joshua Pinter 2021-09-26
这起作用了:-)Oke Uwechue 2021-10-18
按照你说的做了修改。但当我运行./gradlew --version时,仍然显示JVM 1.8Rohit Singh 2021-11-30
#3楼
得票数 145

如果你在Windows 10上使用Android Studio(Arctic Fox 2020.3.1),那么你就会发现。

这就是你如何解决 "构建失败 "的错误。

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

Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8

  1. 打开项目结构...

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

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

  2. 点击Gradle设置链接。

    Gradle Settings Link

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

    enter image description here

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

Ola Ström 提问于2021-11-22
也可以在mac上进行修复:)Hagai Harari 2021-11-25
这对我来说也解决了这个问题。Seth 2022-09-28
#4楼
得票数 44

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

你只需要在偏好设置中的Gradle设置中选择嵌入式JDK 11.0.10版本。

Enter image description here

SANAT 提问于2021-11-02
Peter Mortensen 修改于2021-11-15
我没有看到'Gradle JDK'的选项。Luke Pighetti 2021-12-07
#5楼
得票数 36

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

./gradlew --version

Enter image description here

转到偏好构建、执行、部署Gradle

Enter image description here

将Gradle JDK修改为最新版本。

Enter image description here

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

MasterWil 提问于2022-01-27
Peter Mortensen 修改于2022-08-17
谢谢你的帮助。在我的M1 mac上选择Embedded JDK version 11.0.11对我有用。Loren.A 2022-02-21
Go to Preference -> Build, Execution, Deployment -> Build Tools -> GradleSebastian Thomas 2022-03-23
这对我来说不起作用,你有什么其他东西可以解决这个问题吗?@MaserWilvainu 2022-04-04
@vainu 这就是我为解决这个问题所做的一切。如果这不能提供帮助,请原谅。MasterWil 2022-04-04
我没有看到'Gradle JDK'的选项。M Karimi 2022-05-02
#6楼
得票数 28

你可以用这种简单的方法来解决这个问题。

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

  2. 下载你的系统的JDK ZIP文件。(比方说Windows)

  3. 在你的电脑主目录下的任何具有高权限的文件夹中解压。

  4. 现在打开并转到你的Android studio项目结构,位于men File* → Project structure

  5. 并在这里粘贴你解压JDK版本的目录。如你所见,我的是JDK 16,如图所示,安装在该目录中。

    Enter image description here

Samuel Ewudzi Incoom 提问于2021-06-01
Peter Mortensen 修改于2021-11-15
compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = "11" useIR = true } >>>>>>>> 当我们迁移到java 11时,有必要在gradle文件中加入吗?Gyan Swaroop Awasthi 2021-09-30
#7楼
得票数 21

我在 Arctic Fox build 的终端中启动 gradlew ktlintFormat 时遇到此错误。

  1. 我打开 Project Structure(菜单 FileProject Structure)并选择了 Java 11,但即使重新启动也无济于事Android Studio 的。

    Enter image description here

  2. 然后我在Settings中改变了Java路径(见已接受的答案),但这没有帮助。你应该设置它。

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

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

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

    Enter image description here

    Enter image description here

    我按下Edit按钮和"浏览目录...",然后选择了Java 11的JRE(或JDK)文件夹(没有bin)。然后OK,和OK(和往常一样)。

    Enter image description here

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

    'C:\Program'未被识别为内部或外部的命令、可操作的程序或批处理文件。

    看了在Windows中设置JAVA_HOME变量,我发现我们应该用Progra~1替换Program Files(是的,这个DOS技巧仍然有效)。所以,再把JAVA_HOME替换成如下图所示。

    Enter image description here

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

CoolMind 提问于2021-07-27
Peter Mortensen 修改于2021-11-15
我在MacOS上遇到了同样的问题。将Gradle JDK设置为11版,现在构建工作正常了。Schrami 2021-07-29
compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = "11" useIR = true } >>>>>>>> 当我们迁移到java 11时,有必要在gradle文件中加入吗?Gyan Swaroop Awasthi 2021-09-30
@GyanSwaroopAwasthi,谢谢你的通知。在一个项目中,我们使用了JavaVersion.VERSION_11jvmTarget(JavaVersion.VERSION_11.toString()),如你所写。我想,在这种变化之后,Android Studio会要求升级到Java 11。CoolMind 2021-09-30
这真的对我很有帮助,谢谢你!最后我下载了最后一个java机器并安装了它。笔记本重启后,版本发生了变化!Georgiy Chebotarev 2022-01-13
#8楼
得票数 19

我再次下载了11版JDK,它可以工作。这可以节省你的时间,因为你不必清除缓存、构建和重建你的项目。

Downloading new JDK (pick version 11 again or a later version)

Fazan Cheng 提问于2022-08-04
Peter Mortensen 修改于2022-08-17
#9楼
得票数 17

我在更新Android Studio中需要Java 11的一个依赖项时,出现了这个错误。你只需要遵循这些步骤。

  1. 下载 Java 11。对于 Mac,下载 .dmg 文件,对于 Windows,下载 ZIP 文件。链接:下载 Java 11

  2. 在安卓工作室中选择选项

    Enter image description here

    按照步骤,选择您新保存的Java SDK。

    enter image description here

    按照步骤,选择您新保存的Java SDK。

    Enter image description here

    (按照步骤,选择您新保存的Java SDK。)

Mohsin 提问于2021-08-04
Peter Mortensen 修改于2021-11-15
#10楼
得票数 15

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

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

  2. 添加了这行字。

    export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/Contents/Home"
    
  3. 保存了该文件

  4. 通过运行以下程序,用修改过的文件重新加载终端

    source ~/.zshrc
    
  5. 通过运行以下程序来测试变化是否已经被加载

    echo $JAVA_HOME
    
  6. 验证了显示的位置正确。

  7. 验证Gradle是否显示正确的Java 11版本,方法是运行

    cd android
    ./gradlew --version
    

而这里是结果。

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

尝试通过运行再次建立。

yarn android

而且,它成功了。

Abid Ali 提问于2022-06-04
Peter Mortensen 修改于2022-08-17
#11楼
得票数 14

你可以这样做(菜单文件Build选项):

Menu File -> Build option

Muhaiminur Rahman 提问于2022-04-10
Peter Mortensen 修改于2022-08-17
#12楼
得票数 9

在Mac上,只有将JAVA_HOME设置为JDK 11嵌入到Android Studio中才有帮助。

我是用命令行中的这一命令做的。

export JAVA_HOME=ENTER_PATH_TO_JDK_HERE

PATH_TO_JDK可能是类似于/Users/userName/Library/Application\ Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7583922/Android\ Studio.app/Contents/jre/Contents/Home的东西。

Daniel 提问于2021-08-01
Peter Mortensen 修改于2021-11-15
刚刚在我的Mac上将Java更新到11,实际上是有帮助的。当从终端调用时,Gradle似乎使用了系统的Java版本(甚至在Android Studio的终端中)。cybergen 2021-09-10
#13楼
得票数 9

如果您目前正在使用 Android Studio Arctic Fox (4.2)。

  • 您可以手动设置Gradle JDK(菜单PreferencesBuild ToolsGradleGradle JDK (使用或下载 JDK 11))
  • 恢复默认设置,不要在所有项目中做之前的提示(菜单文件管理IDE设置恢复默认设置 )
DavidUps 提问于2021-09-01
Peter Mortensen 修改于2021-11-15
compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = "11" useIR = true } >>>>>>>> 当我们迁移到java 11时,有必要在gradle文件中加入吗?Gyan Swaroop Awasthi 2021-09-30
#14楼
得票数 9

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

安卓的Gradle插件需要Java 11才能运行。

通过将Gradle JDK“JDK 1.9”的值替换为“Android Studio SDk default JD 11.0.11”来解决菜单设置构建、执行、部署构建工具Gradle

Ali Tamoor 提问于2021-10-09
Peter Mortensen 修改于2021-11-15
#15楼
得票数 9

如果您正在使用MS App Center,当您在Android项目中使用Java 11时,您可能面临同样的问题。如果您正在寻找解决MS App Center问题的方法。这可能会帮助您!

  • 转到https://appcenter.ms/users/user1/apps/yourapp/build/branches
  • 点击设置图标转到Build configuration
  • 向下滚动到Environment,然后打开。
  • JAVA_HOME 设置为$(JAVA_HOME_11_X64)

Enter image description here

Lakpriya Senevirathna 提问于2022-01-12
Peter Mortensen 修改于2022-08-17
这是很有效的形式,你是一个救世主xD,谢谢你。Ayoub 2022-04-14
#16楼
得票数 8

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

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

/usr/libexec/java_home -V

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

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

第二个解决方案是在文件夹~/Library/Java/JavaVirtualMachines/中建立一个符号链接,将JRE嵌入到Android Studio中,其命令是:

ln -s "/Applications/Android Studio.app/Contents/jre" "~/Library/Java/JavaVirtualMachines/Android Studio Default JRE"

另外,你可以在~/.zshenv中加入这行字:

export JAVA_HOME=/usr/libexec/java_home

如果需要的话,你可以得到不同的Java版本的安装路径。

/usr/libexec/java_home -v 11

或者说

/usr/libexec/java_home -v 1.8
Змей Горыныч 提问于2021-08-11
Peter Mortensen 修改于2021-11-15
上面的其他答案让你检查Android Studio中的java版本。这表明我已经安装了java 11。按照你的步骤使用/usr/libexec/java_home -V检查是对我的帮助。James 2021-09-16
谢谢。上述方法都不奏效LucasMW 2022-02-21
#17楼
得票数 8

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

Enter image description here

isamirkhaan1 提问于2022-01-27
Peter Mortensen 修改于2022-08-17
#18楼
得票数 8
  • 对于最新版本,这在我的Windows机器上是可行的

  • Menu File项目结构

    Project

  • 从你安装JDK 11的机器上选择JDK 11。

  • 单击ApplyOK

  • 在做出这些改变后,重新启动你的Android Studio

  • 现在,你可以走了。

Enter image description here

Yuvaraj 提问于2022-05-19
Peter Mortensen 修改于2022-08-17
对我来说没有任何作用。我刚刚更新了flutter 3.0和jdk11.0.5。btm me 2022-05-31
最终我成功了 android { compileSdkVersion flutter.compileSdkVersion ndkVersion flutter.ndkVersion compileOptions { sourceCompatibility 11 targetCompatibility 11 } kotlinOptions { jvmTarget = "11" useIR = true } sourceSets { main.java.srcDirs += 'src/main/kotlin' }btm me 2022-05-31
#19楼
得票数 7

新的Gradle版本需要Java 11。你需要下载Java 11并更新到Gradle中。

首先,你需要检查你当前的JDK版本。'./gradlew --version'。在你的项目终端使用这个注释来了解当前使用的JDK版本。你会得到下面的图片。

JDK version

如果JVM指向1.8版本,那么你应该在设置中改变它。

用于Ubuntu和Windows。菜单文件设置构建、执行、部署构建工具GradleGradle JDK。请查看以下图片:

Windows

对于 Mac:首选项构建执行、部署构建工具GradleGradle JDK.

这对我来说是完美的工作。

Shohel Rana 提问于2021-08-10
Peter Mortensen 修改于2021-11-15
你为什么要复制和粘贴现有的答案呢?Houman 2021-08-24
@Houman 我不复制现有答案。如果你认为是这样,那就对不起了。Shohel Rana 2021-08-25
@ShohelRana 被接受的答案是4月的,你的答案是8月的。你在这里所说的,已经被他的答案所涵盖。stackoverflow.com/a/67002271/92153.你不觉得吗?Houman 2021-08-25
compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = "11" useIR = true } >>>>>>>> 当我们迁移到java 11时,有必要在gradle文件中加入吗?Gyan Swaroop Awasthi 2021-09-30
@GyanSwaroopAwasthi 使用可以使用compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }。我在以前的项目中使用了这个选项,它对我有用。Shohel Rana 2021-10-03
#20楼
得票数 7

For macOS users

捆绑在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
Pavel Shorokhov 提问于2021-12-16
Peter Mortensen 修改于2022-08-17
而且,Android Studio中内置的JVM有什么问题?org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/Contents/HomeAndrew Bekhtold 2022-02-17
#21楼
得票数 6

⚠️注意:如果你在GitHub Actions Pipeline上遇到这个错误,这是一个解决方案。

如果您在项目中使用Java 11,但构建应用程序的 GitHub Action Pipeline 被设置为使用 Java 1.8,那么您将会得到这个错误。

要解决这个问题,请替换以下内容。

      - name: set up JDK 1.8
        uses: actions/setup-java@v1
        with:
          java-version: 1.8

有了:

      - name: set up JDK 11
        uses: actions/setup-java@v1
        with:
          java-version: 11
Kuruchy 提问于2021-12-24
Peter Mortensen 修改于2022-08-17
在项目中,在哪里添加这个?Keyur Thumar 2022-01-01
如果你在Github Actions Pipeline上遇到这种情况,你可以改变你项目中.github/workflows文件夹下的Action .yml文件中的步骤。Kuruchy 2022-01-01
谢谢!yaugenka 2022-01-13
#22楼
得票数 5

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

运行样本的指令是:执行

./gradlew macrobenchmark:cC

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

我曾试过上面M Tomczyński提供的已接受的答案,但这对我不起作用。我相信这是我现有的JAVA_HOME配置的结果(可以在这里找到)。

这也意味着选项2,即改变我的JAVA_HOME配置,不是一个选项。

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

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

Chris 提问于2021-06-01
Chris 修改于2021-10-11
#23楼
得票数 4

在 Android Studio Arctic Fox (4.2)中,将 Gradle JDK 改为 11 对我来说很有效。

第1步。

导航到:菜单 文件设置构建、执行、部署构建工具Gradle

第2步。

将Gradle JDK改为11,在Gradle项目下面。

第3步。

应用,然后重建项目

Sijan Neupane 提问于2021-09-21
Peter Mortensen 修改于2021-11-15
compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = "11" useIR = true } >>>>>>>> 当我们迁移到java 11时,有必要在gradle文件中加入吗?Gyan Swaroop Awasthi 2021-09-30
#24楼
得票数 3

如果你在 Android Studio 的终端中遇到这个问题,你应该将环境中的 JAVA_HOME 配置为 Java 11,在首选项中设置 Gradle JDK 不能解决。我想,从终端运行Gradle和从IDE运行Gradle不是同一个过程,它们使用的JDK位置不同。

Adam 提问于2022-04-07
Peter Mortensen 修改于2022-08-17
#25楼
得票数 3

我通过在gradle.properties文件中添加这个解决了这个问题。

org.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64

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

Windows下的示例路径。

org.gradle.java.home=C\:\\Program Files\\Java\\jdk-13.0.2
Roddy P. Carbonell 提问于2022-05-07
Peter Mortensen 修改于2022-08-17
#26楼
得票数 3

For a Flutter project with VS Code

将此添加到文件gradle.properties中。

org.gradle.java.home=<path to JDK 11>

举例说明。

C:\\Program Files\\Java\\jdk-11.0.15

gradle.properties

Jasper Diongco 提问于2022-06-22
Saayeed M Daawoud 修改于2022-09-23
我认为这可能更适合于local.properties,如果你关心最佳实践的话。Tanner Davis 2022-10-18
#27楼
得票数 2

我的问题是,我使用的是Arctic Fox(4.2)之前的Android Studio版本。而似乎只有Arctic Fox支持JDK 11。

Júlio Reis 提问于2021-09-08
Peter Mortensen 修改于2021-11-15
#28楼
得票数 2

Android Studio 4.2 (Arctic Fox), 2020.3.1 Patch 3中,之前的答案对我来说都不适用。

在我的情况下,只有将org.gradle.java.home=<Path-to-JDK-v11>加到gradle.properties才有效。

如果您使用的是 Linux,只需添加 org.gradle.java.home=/opt/android-studio/jre

Sidharth Shambu 提问于2021-12-15
Peter Mortensen 修改于2022-08-17
在这里没有其他建议的情况下为我工作了,Win10,AS 4.1.1Jason DeMorrow 2022-06-18
#29楼
得票数 2

如果你不想使用JDK 11,而仍然想使用JDK 1.8,你可以按下面的方法还原Android插件。

plugins {
    id 'com.android.application' version '4.2.0' apply false
    id 'com.android.library' version '4.2.0' apply false
}
Weidian Huang 提问于2022-02-26
Peter Mortensen 修改于2022-08-17
#30楼
得票数 1

在Windows中,我在没有安装更新React Native v0.67到0.68时,从目录的CMD中得到这个错误。

首先,我安装。

choco source add -n chocolatey -s 'https://chocolatey.org/api/v2/'

然后,我运行这个。

choco install -y nodejs-lts openjdk11 // Without nodejs-lts I have already installed Node.js
Zeeshan 提问于2022-04-16
Peter Mortensen 修改于2022-08-17
#31楼
得票数 0

对我有用的是什么。

  1. 删除我的用户文件夹中的JDK 1.8的文件夹。
  2. 重新启动了Android Studio。
  3. Android Studio在屏幕的顶部降下了一个栏,询问我是否要改变使用的JDK,或者重新下载1.8。
  4. 我选择了JDK 16,所有的工作都成功了!
Kevin Kozakewich 提问于2021-08-19
(目前JDK的最新版本是17.0.1)。Peter Mortensen 2021-11-15
#32楼
得票数 0

对我来说,只要确保我使用位于[Android Studio安装路径]/jre的Gradle JDK就可以了。

试试吧。它也可能对你有用。

Tamtomo Abdi Negoro 提问于2021-07-22
Peter Mortensen 修改于2021-11-15
#33楼
得票数 0

我看到这一点是因为在我的Bitbucket服务器上设置了管道,我需要从docker-android-sdk/android-28镜像中构建,该镜像是与openjdk-8一起打包的。

我在我的bitbucket-pipelines.yml文件中添加了以下一行,以便在运行Gradle构建之前安装openjdk-11。

- apt-get install -y openjdk-11-jdk
Adam Johns 提问于2021-11-12
Peter Mortensen 修改于2021-11-15
#34楼
得票数 0

对于不知道如何改变JDK版本的人来说,如果你是在Mac上,在终端中使用这个命令。

sudo rm -rf /Library/Java/*

这将从系统中删除所有 JDK。然后,只需下载所需的 JDK 版本,就可以了up

Mohammed Aljezawi 提问于2021-11-15
Peter Mortensen 修改于2021-11-15
#35楼
得票数 0

我正在开发一个Flutter应用程序,它在我的手机上无法运行,并指出 Android Gradle 插件需要 Java 11。

我的Android Studio版本非常旧。我没有看到截图中显示的任何选项。我在系统环境变量中设置了JAVA_HOME后更新了Android Studio。然后它自动选择了Java 11。

Leena 提问于2022-08-06
Peter Mortensen 修改于2022-08-17
#36楼
得票数 0

如果你只是在首选项→构建、执行、部署→构建工具→Gradle中把JDK的版本从1.8修改为11,你可能还是会出现这样的错误。

通过运行命令./gradlew --version,你可以看到JDK版本仍然是1.8。所以,我们需要将~/.bash_profile中的JAVA_HOME值改为你真正的JDK-11位置。下面是修改后的差异:

- export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home
+ export JAVA_HOME=/Users/xx/Library/Java/JavaVirtualMachines/corretto-11.0.14.1/Contents/Home

然后,重新打开你的Android Studio,一切都会很好地运行。

J.su 提问于2022-08-09
Peter Mortensen 修改于2022-08-17
#37楼
得票数 0

注意:如果你在Azure DevOps管道上遇到这个错误,这是一个解决方案。

如果你在项目中使用了Java 11,但构建应用程序的Azure DevOps管道被设置为使用Java 1.8,那么你会得到这个错误。

为了解决这个问题,请添加以下内容(对于Window pool)。

    - task: JavaToolInstaller@0
      inputs:
        versionSpec: '11'
        jdkArchitectureOption: 'x64'
        jdkSourceOption: 'PreInstalled'
Niels Steenbeek 提问于2022-08-26
#38楼
得票数 0

只需在gradle.properties中添加以下属性即可。

org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk-16.jdk/Contents/Home

(这是针对MacOS的,根据操作系统给出路径)。这个修正将适用于任何Android Studio版本

Ehtesham Siddiquie 提问于2022-09-18
#39楼
得票数 0

Preferences->Build,Execution,Deployment->Build Tools-> Gradle

在android Studio中,我只是做了这样的工作 首选项->构建、执行、部署->构建工具->Gradle,很简单。

Dr. Roger Webster 提问于2022-10-22