如何将 Android Studio 默认 gradle JDK 更改为 11

Posted

技术标签:

【中文标题】如何将 Android Studio 默认 gradle JDK 更改为 11【英文标题】:How to change Android Studio default gradle JDK to 11 【发布时间】:2022-01-10 16:10:07 【问题描述】:

单击运行时收到此消息:

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

Error message "Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8" 在设置中更改 Gradle JDK 的答案有效。 但仅限于那个项目。当我创建一个新项目时,Android Studio 会自动再次使用默认的 1.8。

我有 11 个可用,AS 只是不会自动使用它。 我尝试过的事情:将 JAVA_HOME 环境更改为 JDK 11 的位置,但仍然出现相同的错误。

无效缓存 /restart 一堆时间什么都没做

如何设置一次,应用到以后所有的新项目中?

附加 app/build.gradle

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


android 
    compileSdk 31

    defaultConfig 
        applicationId "com.example.grid"
        minSdk 22
        targetSdk 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    

    buildTypes 
        release 
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        
    
    compileOptions 
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    
    kotlinOptions 
        jvmTarget = '1.8'
    


dependencies 

    implementation 'androidx.core:core-ktx:1.7.0'
    implementation 'androidx.appcompat:appcompat:1.4.0'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

    implementation 'com.github.bumptech.glide:glide:4.12.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'

*** build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript 
    repositories 
        google()
        mavenCentral()
    
    dependencies 
        classpath "com.android.tools.build:gradle:7.0.3"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    


task clean(type: Delete) 
    delete rootProject.buildDir

【问题讨论】:

你能显示你的 build.gradle 文件吗? @SyedAffanHamdani 当然,添加了 gradle 文件 ``` kotlinOptions jvmTarget = '1.8' ``` 是问题所在。将其更改为:kotlinOptions jvmTarget = '11' 应该修复它。 您找到解决方案了吗? JAVA_HOME 设置为 JDK 版本 13,但每次我创建一个新项目时,我都会收到消息 > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.,我需要在 IDE 设置中更改它。我在 macOS 上使用 Android Studio Bumblebee | 2021.1.1 补丁 1。 我安装了 2 个 Android Studio。 Android Studio 北极狐和 Android Studio 4.1。我想正因为如此,我有 2 个版本的 Gradle JDK。我删除了 Android Studio 4.1,它解决了这个问题。我猜当您安装新版本的 Android Studio 时,它会在 Application/Android Studio 2 下安装 Gradle JDK。并且可能是...... Android Studio 中的下拉菜单按字母顺序拉出所有可用的 JDK。我不知道这只是我的一个疯狂的理论。 【参考方案1】:

可能看起来晚了,但我通过安装所需的 java jdk 来修复我的问题,顺便安装了 jdk 17。那是从我的浏览器下载并安装它之后。 然后您可以使用以下方法检查您设备上的 Java 版本; cmd上的“java --version”命令,然后你可以重新启动你的电脑并打开android studio。然后在 android studio 的终端上检查 gradlew --version 命令的 jvm,如果它已更新,你就可以开始了

【讨论】:

Gradle JDK 未在 Android Bumblebee 中显示。你的方式适合我。【参考方案2】:

安装了多个 Android Studio?

简答:

只需删除其他版本,它应该可以解决问题。

长答案:

我安装了两个版本的 Android Studio,Android 4.2Android Arctic Fox。两个 Android Studio 都安装了不同的 Gradle JDK 版本。

这就是我在北极狐 Gradle 设置中看到的内容。 (默认选择是 1.8)

我的理论:

如果你注意到 Gradle JDK 安装在 Applications/Android Studio/Content/ 下

我假设 Gradle 设置页面会调出所有已安装的 Gradle JDK 版本。并且在设置页面中没有设置默认版本的选项。所以第一个 Gradle 版本成为默认版本。

我不知道它是按字母顺序排序还是基于下载时间戳

但我相信它是基于时间戳的。最旧的已安装版本位于列表顶部。

这是一个支持性的观察。当我删除 Android Studio 4.2 和 ctrl+z(撤消)它时,列表顺序发生了变化。

免责声明:

我可能完全错了,因为我没有任何官方文档,支持此声明的链接。这只是一个理论。 而且我知道这不是一个理想的解决方案,因为删除旧的 Android Studio 可能不是每个人的选择。

【讨论】:

【参考方案3】:

您是否尝试过: app 模块 build.gradle 文件。

android 
    // ...
    compileOptions 
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    
    kotlinOptions 
        jvmTarget = '11'
    

同时尝试选择默认提供的 Android Studio SDK

【讨论】:

感谢您的帮助。使用 VERSION_11 给我带来了这个问题***.com/q/65542665/5777189,这就是我使用 VERSION_1.8 的原因无论如何,这对这个项目很有效。但是当我创建一个新项目时,该项目再次使用 1.8。有什么线索吗?

以上是关于如何将 Android Studio 默认 gradle JDK 更改为 11的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio - 选项卡式活动如何将片段重置为默认视图?

在android studio中打开VCS时如何将main作为默认分支

如何在 Android Studio 上更改布局预览默认设备

我的颤振项目在 android studio 中缺少 Gradle 窗口

android 如何修改默认时间?

将应用代码由eclipse导入Android studio的方法NDK-Build和Cmake两种方法(以android_serialport_api为例)