提问人:Ven Shine 提问时间:4/7/2021 最后编辑:SnostorpVen Shine 更新时间:11/15/2023 访问量:657779
Android Studio 错误“Android Gradle 插件需要 Java 11 才能运行。您当前使用的是 Java 1.8”
Android Studio Error "Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8"
问:
我下载了最新的 Android Studio,我想运行 Android Jetpack Compose Project,但当我运行它时,我收到了错误:
> 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
我该怎么办?
我的 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)
我的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"
}
答:
确保您的 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,则应在设置中更改它。您可以在 Build、Execution、Deployment → Build Tools → Preferences 中找到它→ Gradle → *Gradle JDK。
评论
compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = '11' }
build.gradle
sdkman
./gradlew -verion
我第一次尝试运行基准测试样本时遇到了类似的问题。
运行示例的指令是执行的
./gradlew macrobenchmark:cC
在IDE终端中,但在我的情况下,这导致了相同的错误。
我尝试了上面 M Tomczyński 的公认答案,但这对我不起作用。我相信这是我现有的配置(可以在这里找到)的结果。JAVA_HOME
这也意味着选项 2,更改我的配置,不是一个选项。JAVA_HOME
不过,对我有用的更改是上述建议中的选项 3。我从上面的答案中检查了 Java 11 的路径并将其添加到 中,然后根据 IDE 提示同步 gradle,并成功重新运行了 macrobenchamark gradle 命令。gradle.properties
org.gradle.java.home=/Applications/Android Studio Preview.app/Contents/jre/Contents/Home
你可以用这种简单的方式解决它。
转到 https://www.oracle.com/java/technologies/javase-jdk16-downloads.html
下载系统的JDK ZIP文件。(比如说 Windows)
将其解压缩到PC主目录下具有高权限的任何文件夹中
现在打开并转到位于 men File* → Project structure 的 Android Studio 项目结构。
并将解压缩 JDK 版本的目录粘贴到此处。如您所见,我的现在是 JDK 16,并安装在该目录中,如图所示:
评论
当我在北极狐构建的终端中开始时,我遇到了这个错误。gradlew ktlintFormat
我打开了 Project Structure(菜单 File → Project Structure) 并选择了 Java 11,但即使在重新启动 Android Studio 后也无济于事。
然后我在“设置”中更改了 Java 路径(请参阅接受的答案),但它没有帮助。你应该设置它。
我试图更改 Windows 系统变量并更改了 .
JAVA_HOME
(一个简短的方法:使用管理权限运行并写入:,然后重新启动Android Studio)
cmd
setx /M JAVA_HOME "C:\Program Files\Java\jdk-11.0.11"
按+,按“系统”,然后输入“va”。WinX
我按下按钮和“浏览目录...”,然后选择 Java 11 的 JRE(或 JDK)文件夹(不带)。然后 和 (一如既往)。Edit
bin
OKOK我打开(在 Windows 中的命令行)并键入:.它给我写了这个错误:
cmd
%JAVA_HOME%
“C:\Program”未被识别为内部或外部命令, 可操作的程序或批处理文件。
查看在 Windows 中设置JAVA_HOME变量,我发现我们应该替换为(是的,这个 DOS 技巧仍然有效)。因此,如下图所示再次替换JAVA_HOME(C:\Progra~1\Android\Androi~1\jre)。
Program Files
Progra~1
重新启动 Android Studio 或重置计算机。
评论
JavaVersion.VERSION_11
jvmTarget
在 Mac 上,只有将 JAVA_HOME 设置为嵌入到 Android Studio 的 JDK 11 才有帮助。
我在命令行中使用了以下命令:
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
评论
当我在 Android Studio 中更新需要 Java 11 的依赖项之一时,我收到了此错误。您只需要按照以下步骤操作即可。
下载 Java 11。对于 Mac,请下载 .dmg 文件,对于 Windows,请下载 ZIP 文件。链接: 下载 Java 11
在 Android Studio 中选择选项
按照步骤操作,然后选择新保存的 Java SDK
按照步骤操作,然后选择新保存的 Java SDK。
(按照步骤操作,然后选择新保存的 Java SDK。
我得出的结论是,Gradle 调用系统上安装的 Java 版本,而不管 Android Studio 设置如何。
在 macOS 上,使用以下命令检查系统中已安装的 Java 版本列表:
/usr/libexec/java_home -V
如果其中没有 Java 11 或更高版本,您将收到与问题作者类似的错误。
解决方案是安装 Java 11 或更高版本。
第二种解决方案是使用以下命令在文件夹中创建一个符号链接,指向嵌入在 Android Studio 中的 JRE:~/Library/Java/JavaVirtualMachines/
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
评论
/usr/libexec/java_home -V
如果您当前使用的是 Android Studio Arctic Fox (4.2):
- 您可以手动设置 Gradle JDK(菜单首选项→构建工具→ Gradle → Gradle JDK(使用或下载 JDK 11))
- 恢复默认设置,不要在所有项目中执行前面的提示(菜单 文件→ 管理 IDE 设置 → 恢复默认设置)
评论
对于 Android Studio Arctic Fox (4.2),Windows 10 Pro PC 上的 2020.3.1 补丁 2:
第 1 步
步骤 2
评论
在 Android Studio Arctic Fox (4.2) 中将 Gradle JDK 更改为 11 对我有用:
步骤1:
导航到:菜单 文件→设置 → 构建、执行、部署→构建工具 → Gradle
步骤2:
将 Gradle JDK 更改为 11,位于 Gradle 项目下方。
步骤3:
申请,并重建项目!
评论
我只是遇到了同样的问题——
Android Gradle 插件需要 Java 11 才能运行
通过将 Gradle 的 Setup(构建、执行、部署→构建工具)菜单设置→→ Gradle 中的值“JDK 1.9”替换为“Android Studio SDk default JD 11.0.11”来解决该问题。
Android Studio Arctic Fox (4.2) 2020.3.1 补丁 3 - Mac
您只需从首选项的 Gradle 设置中选择嵌入式 JDK 版本 11.0.10。
评论
如果您在 Windows 2020.3.1 上使用 Android Studio (Arctic Fox 10)。
以下是修复“生成失败”错误的方法:
Android Gradle 插件需要 Java 11 才能运行。您当前正在使用 Java 1.8 版本
注意:如果找不到正确的Java JDK,则首先需要下载并安装它...
评论
在 Android Studio 4.2 (Arctic Fox), 2020.3.1 补丁 3 中,之前的答案都不适合我。
在我的情况下,只有添加工作。org.gradle.java.home=<Path-to-JDK-v11>
gradle.properties
如果您使用的是 Linux,只需添加 .org.gradle.java.home=/opt/android-studio/jre
评论
对于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
注意:如果您没有使用 Jetbrains Toolbox,并且已将 Android Studio 安装到 ,请改用以下路径(感谢 @AndrewBekhtold):/Application
org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/Contents/Home
评论
org.gradle.java.home=/Applications/Android Studio.app/Contents/jbr/Contents/Home
⚠️ 注意:如果您在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@v3
with:
distribution: 'zulu'
java-version: 11
评论
.github/workflows
如果您使用的是 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)
评论
这就是我在macOS上修复它的方式。
./gradlew --version
转到 Race →构建、执行、部署→ Gradle
将 Gradle JDK 更改为最新版本。
在安装 Android Studio 之前,我只安装了一个 JDK(Microsoft build OpenJDK 17)。由于未知原因,JDK 1.8 已随 Android Studio 一起安装,并设置为 Gradle 默认值/Users/<username>/Library/Java/JavaVirtualMachines/corretto-1.8.0_322
评论
Embedded JDK version 11.0.11
Go to Preference -> Build, Execution, Deployment -> Build Tools -> Gradle
这里的所有解决方案都对 Java 11 有帮助。但是,如果您不想升级到 Java 11,那么您应该将 Android Gradle 插件 (ADP) 降级到 4.X,如下所示:
如果您不想使用 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
}
如果您在 Android Studio 的终端中遇到此问题,您应该将环境中的 JAVA_HOME 配置到 Java 11 中,并在 Preferences 中设置 Gradle JDK 无法解决。我想从终端运行 Gradle 和从 IDE 运行 Gradle 不是同一个过程,它们使用不同的 JDK 位置。
您可以通过以下方式执行此操作(菜单“文件”→“生成”选项):
我通过将其添加到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
对于最新版本,这适用于我的 Windows 计算机
菜单文件→项目结构
从您安装的机器中选择 JDK 11
单击 和 。ApplyOK
完成这些更改后,重新启动 Android Studio
现在,你就可以开始了
评论
在 Visual Studio Code 中打开文件 ~/.zshrc
添加了以下行:
export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/Contents/Home"
已保存文件
通过运行
source ~/.zshrc
测试是否已加载更改,方法是运行
echo $JAVA_HOME
已验证是否显示正确的位置。
已验证 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
它成功了。
评论
export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"
jre
jbr
对于使用 Visual Studio Code 的 Flutter 项目
将此内容添加到文件 gradle.properties:
org.gradle.java.home=<path to JDK 11>
例:
C:\\Program Files\\Java\\jdk-11.0.15
评论
local.properties
我再次下载了 11 JDK,它可以工作。这样可以节省您的时间,因为您不必清除缓存、生成和重新生成项目。
评论
在Android Studio中,我刚刚做到了这一点:
→ Gradle 构建、执行、部署→构建→工具的首选项
简单易行。
评论
Invalid Gradle JDK configuration found.
将 Java 主路径添加到 wrapper.properties
在 Android Studio 首选项中更改 Gradle JDK 对我不起作用。
但是我能够通过在文件中添加路径来更正 JDK。org.gradle.java.home
gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
# I had to add this line (macOS)
org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/Contents/Home
我通过转到菜单“文件”→“项目结构”→ SDKs→找到JAVA_HOME路径,选择要使用的JDK→JDK主路径。
在那之后,我能够再次运行 Gradle Wrapper (gradlew
) 命令。
评论
当我升级到 Android Studio 15 (Dolphin) 时,我收到了这个错误,它很容易修复。这个答案是最简单、最快和最好的......
在Android Studio中,我刚刚做到了这一点:
首选项→构建、执行、部署→构建工具→ *gradle。选择“Java 11”或“12”等。
简单易行
请看图片。
评论