我下载了最新的 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 版本
https://i.stack.imgur.com/VLFU2.png
我的 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 版,那么您应该在设置中更改它。您可以在首选项 → 构建、执行、部署 → 构建工具 → Gradle → *Gradle JDK 中找到它。
https://i.stack.imgur.com/eumlW.png
对于 Android Studio Arctic Fox (4.2),在 Windows 10 Pro PC 上安装 2020.3.1 补丁 2:
步骤1
https://i.stack.imgur.com/Iw94r.png
第2步
https://i.stack.imgur.com/amBZ7.png
android
级别仅来自 react-native
,因为它具有 android
、ios
等,所以它设置了类似的项目结构。
如果您在 Windows 10 上使用 Android Studio (Arctic Fox 2020.3.1)。
这是您修复构建失败错误的方法:
Android Gradle 插件需要 Java 11 才能运行。您当前使用的是 Java 1.8
https://i.stack.imgur.com/g4QHJ.png
打开项目结构...(从工具栏)(或从文件菜单)单击 Gradle Settings 链接 从 Gradle JDK 下拉列表中选择正确的 Java JDK
注意:如果您找不到正确的 Java JDK,那么您首先需要 download 并安装它...
Android Studio 北极狐 (4.2) 与 2020.3.1 补丁 3 - Mac
您只需从偏好设置的 Gradle 设置中选择嵌入式 JDK 版本 11.0.10。
https://i.stack.imgur.com/IIhKe.png
这就是我在 macOS 上修复它的方式。
./gradlew --version
https://i.stack.imgur.com/idHQW.png
Go to Preference -> Build, Execution, Deployment -> Gradle
https://i.stack.imgur.com/3pIm5.png
将 Gradle JDK 更改为最新版本。
https://i.stack.imgur.com/cNuhj.png
在安装 Android Studio 之前,我只安装了一个 JDK(Microsoft 构建 OpenJDK 17),由于未知原因,已在 Android Studio 中安装了 JDK 1.8,并在 /Users/<username>/Library/Java/JavaVirtualMachines/corretto-1.8.0_322
处设置为 gradle 默认值
Embedded JDK version 11.0.11
对我有用。
Go to Preference -> Build, Execution, Deployment -> Build Tools -> Gradle
您可以通过这种简单的方式解决它。
转到 https://www.oracle.com/java/technologies/javase-jdk16-downloads.html 下载系统的 JDK ZIP 文件。 (假设是 Windows)将其解压缩到 PC 主目录下具有高权限的任何文件夹中现在打开并转到位于 men File* → 项目结构的 Android Studio 项目结构。并在此处粘贴您解压缩 JDK 版本的目录。如您所见,我现在是 JDK 16,并安装在该目录中,如图所示:
我在 Arctic Fox build 的终端中启动 gradlew ktlintFormat
时收到此错误。
我打开了项目结构(菜单文件→项目结构)并选择了 Java 11,但即使重新启动 Android Studio 也没有帮助。然后我更改了设置中的 Java 路径(请参阅接受的答案),但没有帮助。你应该设置它。我试图更改 Windows 系统变量并更改了 JAVA_HOME。 (简单的方法:以管理员权限运行cmd并写入:setx /M JAVA_HOME "C:\Program Files\Java\jdk-11.0.11",然后重启Android Studio)按Win+X,按"System",然后输入“va”。我按下编辑按钮和“浏览目录...”,然后选择 Java 11 的 JRE(或 JDK)文件夹(不带 bin)。然后确定,然后确定(一如既往)。我打开 cmd(Windows 中的命令行)并输入:%JAVA_HOME%。它给我写了这个错误:'C:\Program' 不被识别为内部或外部命令、可运行程序或批处理文件。查看在 Windows 中设置 JAVA_HOME 变量,我发现我们应该用 Progra~1 替换 Program Files(是的,这个 DOS 技巧仍然有效)。因此,请再次替换 JAVA_HOME,如下图所示。重启 Android Studio 或重置电脑。
JavaVersion.VERSION_11
和 jvmTarget
(JavaVersion.VERSION_11.toString())。我认为,在此更改之后,Android Studio 会要求升级到 Java 11。
当我更新 Android Studio 中需要 Java 11 的依赖项之一时,出现此错误。您只需按照以下步骤操作即可。
下载 Java 11。对于 Mac,下载 .dmg 文件,对于 Windows,下载 ZIP 文件。链接:Download Java 11 Select options at Android studio 按照步骤选择新保存的 Java SDK 按照步骤选择新保存的 Java SDK。 (按照步骤并选择新保存的 Java SDK。)
最新答案:你可以这样做
https://i.stack.imgur.com/MnN4Z.png
我得出的结论是 Gradle 调用系统上安装的 Java 版本,而不管 Android Studio 设置如何。
在 macOS 上,使用以下命令检查系统中已安装 Java 版本的列表:
/usr/libexec/java_home -V
如果其中没有 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"
此外,您可以将此行添加到 ~/.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(菜单 Preferences → Build Tools → Gradle → Gradle JDK(使用或下载 JDK 11))
恢复默认设置,不要在所有项目中做之前的提示(菜单文件→管理IDE设置→恢复默认设置)
我只是遇到了同样的问题-
Android Gradle 插件需要 Java 11 才能运行
通过在菜单 Settings → Build, Execution, Deployment → Build Tools → Gradle 中将 Gradle JDK 的值“JDK 1.9”替换为“Android Studio SDk 默认 JD 11.0.11”来解决它。
https://i.stack.imgur.com/1wGcN.png
在 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
新的 Gradle 版本需要 Java 11。您需要下载 Java 11 并更新到 Gradle。
首先,您需要检查您当前的 JDK 版本。 './gradlew --version'。在您的项目终端中使用此注释来了解当前使用的 JDK 版本。你会得到下图:
https://i.stack.imgur.com/JNImI.png
如果 JVM 指向 1.8 版,那么您应该在设置中更改它。
对于 Ubuntu 和 Windows:菜单 文件 → 设置 → 构建、执行、部署 → 构建工具 → < em>Gradle → Gradle JDK。请检查下图:
https://i.stack.imgur.com/z4Ypp.png
对于 Mac:首选项 → 构建 → 执行,部署 → 构建工具 → Gradle → Gradle JDK。
它对我来说非常有效。
对于 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
如果您使用的是 MS App Center,则在您的 android 项目中使用 JAVA 11 时可能会遇到同样的问题。如果您正在寻找 MS App Center 问题的解决方案,这可能会对您有所帮助!
转到 https://appcenter.ms/users/user1/apps/yourapp/build/branches
单击设置图标转到构建配置
向下滚动到环境并打开。
将 JAVA_HOME 设置为 $(JAVA_HOME_11_X64)
https://i.stack.imgur.com/nVsP9.png
第一次尝试运行 benchmarking samples 时遇到了类似的问题。
运行示例的指令是执行
./gradlew macrobenchmark:cC
在 IDE 终端中,但在我的情况下,这导致了同样的错误。
我已经尝试了上面 M Tomczyński 接受的答案,但这对我不起作用。我相信这是由于我对 JAVA_HOME
(可以在 here 中找到)的现有配置造成的。
这也意味着选项 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
在 Android Studio Arctic Fox (4.2) 中将 Gradle JDK 更改为 11 对我有用:
步骤1:
导航到:菜单文件 → 设置 → 构建、执行、部署 → 构建工具 → Gradle
第2步:
在 Gradle Projects 下方将 Gradle JDK 更改为 11。
第 3 步:
申请并重建项目!
⚠️ Note: this is a solution if you are getting this error on the 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
.github/workflows
文件夹下的 Action .yml 文件中的步骤。
对于最新版本,这适用于我的 windows 机器
文件 -> 项目结构
从您安装的机器中选择 JDK 11
单击“应用”和“确定”。
完成这些更改后重新启动您的 android studio
现在,你可以走了
https://i.stack.imgur.com/WwTjs.png
在 MacOS M1 上,我通过以下步骤解决了它。
在 vsCode 中打开 ~/.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
它成功了。
在 Android Studio Artic Fox 中,以上方法都不适合我 | 2020.3.1 补丁 3。
在我的情况下,只有将 org.gradle.java.home=<Path-to-JDK-v11>
添加到 gradle.properties
才有效。
如果您使用的是 linux,只需添加 org.gradle.java.home=/opt/android-studio/jre
。
如果您不想使用 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,在Perferences中设置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 中,当从目录的 CMD 将 React 本机 v0.67 升级到 0.68 而不安装更新 openjdk 11 时出现此错误。首先我安装
choco source add -n chocolatey -s 'https://chocolatey.org/api/v2/'
然后我运行这个
choco install -y nodejs-lts openjdk11 //without nodejs-lts i have already install node
希望它对某人有用
什么对我有用:
在我的用户文件夹中删除 JDK 1.8 的文件夹。重新启动 Android Studio。 Android Studio 在屏幕顶部下拉了一个栏,询问我是否要更改要使用的 JDK 或重新下载 1.8。我选择了 JDK 16,一切正常!
对我来说,这就像确保我使用位于 [Android Studio 安装路径]/jre 中的 Gradle JDK 一样简单。
试试看。它也可能对你有用。
不定期副业成功案例分享
compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = '11' }
build.gradle
文件中。但是,我相信它不会有帮助。确保您的系统 (OS) 具有 Java 11,因为仅更改 Gradle 设置对我没有帮助。在 MacOS 上,我使用sdkman
安装和使用 jdk 11。安装后,我在./gradlew -verion
中看到用户 Java 的正确值,并且项目再次开始正常构建。