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
我应该怎么做?
我的 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
Sam*_*ath 297
对于 Android Studio Arctic Fox (4.2),在 Windows 10 Pro PC 上安装 2020.3.1 补丁 2:
步骤1
第2步
SAN*_*NAT 51
Android Studio Arctic Fox (4.2) 含 2020.3.1 补丁 3 - Mac
您只需从首选项的 Gradle 设置中选择嵌入式 JDK 版本 11.0.10 即可。
Opt*_*rog 41
这就是我在 macOS 上修复它的方法。
\n./gradlew --version\nRun 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
Abi*_*Ali 40
在Visual Studio Code中打开文件~/.zshrc
添加了这一行:
export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/Contents/Home"
Run Code Online (Sandbox Code Playgroud)
已保存文件
通过运行重新加载修改后的文件的终端
source ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
测试是否已通过运行加载更改
echo $JAVA_HOME
Run Code Online (Sandbox Code Playgroud)
已验证是否显示正确的位置。
通过运行验证 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\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\nLak*_*hna 16
如果您使用的是MS App Center,那么当您在 Android 项目中使用 Java\xc2\xa011 时,您可能会遇到同样的问题。如果您正在寻找 MS 应用中心问题的解决方案。这可能对你有帮助!
\nhttps://appcenter.ms/users/user1/apps/yourapp/build/branchesBuild configurationEnvironment并打开。JAVA_HOME$(JAVA_HOME_11_X64)Sam*_*oom 14
你可以用这个简单的方法解决它。
转至https://www.oracle.com/java/technologies/javase-jdk16-downloads.html
下载系统的 jdk zipfile。(让我们说窗户)
将其解压缩到您的 PC 主目录下的任何具有高权限的文件夹中
现在打开并转到位于File > Project structure 的Android Studio 项目结构
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
将其添加到文件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)
Coo*_*ind 10
gradlew ktlintFormat在 Terminal of Arctic Fox build 中启动时出现此错误。
然后我在设置中更改了 Java 路径(请参阅接受的答案),但没有帮助。你应该设置它。
我尝试更改 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)文件夹(没有)。然后确定,确定(一如既往)。
cmd(Windows 中的命令行)并输入:%JAVA_HOME%. 它给我写了这个错误:'C:\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件。
查看https://confluence.atlassian.com/doc/setting-the-java_home-variable-in-windows-8895.html我发现我们应该替换Program Files为Progra~1(是的,这个 DOS 技巧仍然有效)。因此,如下图所示再次替换 JAVA_HOME。
Ali*_*oor 10
我刚刚遇到了同样的问题 -
\n\n\nAndroid Gradle 插件需要 Java 11 才能运行
\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摇篮。
\ncom*_*m1x 10
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)
Kur*_*chy 10
\xe2\x9a\xa0\xef\xb8\x8f 注意:如果您在GitHub Actions Pipeline
如果您在项目中使用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\nRun 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\nRun Code Online (Sandbox Code Playgroud)\n
小智 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)
如果您当前使用的是 Android Studio Arctic Fox (4.2):
\n对于最新版本,这适用于我的 Windows 计算机
\n菜单文件\xe2\x86\x92项目结构
\n\n从您安装的计算机中选择 JDK 11
\n单击Apply和OK。
\n完成这些更改后重新启动 Android Studio
\n现在,你可以走了
\n我通过将其添加到 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)
当我第一次尝试运行基准测试样本时遇到了类似的问题。
\n运行示例的指令是执行
\n./gradlew macrobenchmark:cC
在 IDE 终端中,但在我的例子中,这导致了同样的错误。
\n我已经尝试了上面 M Tomczy\xc5\x84ski 接受的答案,但这对我不起作用。我相信这是我现有配置的结果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
小智 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在 Android Studio 首选项中更改 Gradle JDK 对我来说不起作用。
\n但我能够通过添加org.gradle.java.home路径来纠正 JDKgradle-wrapper.properties文件中添加路径来更正 JDK。
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\nRun 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 ) 命令。
| 归档时间: |
|
| 查看次数: |
46019 次 |
| 最近记录: |