即使 java gradle 工具链设置为 jdk 11,Gradle 仍使用 Java 1.8 构建 android 项目

2024-02-12

FAILURE: Build failed with an exception.
* Where:
Build file '/bitrise/src/app/build.gradle' line: 1
* What went wrong:
A problem occurred evaluating project ':app'.
> 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`.

Gradle 检测本地安装的 JVM Gradle 选择符合构建要求的 JRE/JDK(在本例中为支持 Java 14 的 JVM) 如果没有找到匹配的JVM,会自动从AdoptOpenJDK下载匹配的JDK

Android Gradle 插件支持新的 gradle 工具链吗?https://docs.gradle.org/current/userguide/toolchains.html https://docs.gradle.org/current/userguide/toolchains.html

著名的库/插件/版本

  • 运行 AGP 7.0.0-alpha03
  • 科特林 1.4.21
  • Android Studio 北极狐金丝雀 3
  • jvm目标 1.8
  • gradle 包装器 6.8-rc-1

下面的应用程序模块 gradle 配置(删除了一些细节)

android {

    java {
        toolchain {
            languageVersion = JavaLanguageVersion.of(11)
        }
    }

    kotlinOptions {
        jvmTarget = Versions.jdkNumber
        useIR = true
    }

    buildToolsVersion Config.buildToolsVersion
    compileSdkVersion Config.compileSdk

    buildFeatures {
        compose true
        dataBinding true
    }

    composeOptions {
        kotlinCompilerVersion Versions.kotlin_version
        kotlinCompilerExtensionVersion Versions.compose
    }

    androidExtensions {
        experimental = true
    }
}

你可以看看这个。我有一个类似的问题,它为我解决了。这是 Gradle 自己的代码“片段”,用于解决您所面临的问题。

import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompile

plugins {
    id "org.jetbrains.kotlin.jvm" version "1.4.20"
}

repositories {
    jcenter()
}

// tag::compiler-kotlin[]
def compiler = javaToolchains.compilerFor {
    languageVersion = JavaLanguageVersion.of(11)
}

tasks.withType(KotlinJvmCompile).configureEach {
    kotlinOptions.jdkHome = compiler.get().metadata.installationPath.asFile.absolutePath
}
// end::compiler-kotlin[]

这是在https://github.com/gradle/gradle/blob/master/subprojects/docs/src/snippets/java/toolchain-kotlin/groovy/build.gradle https://github.com/gradle/gradle/blob/master/subprojects/docs/src/snippets/java/toolchain-kotlin/groovy/build.gradle

我将它合并到我的项目中https://github.com/7ep/r3z/blob/51cc69bb6396c34f0507b67763487c9bc171a03e/build.gradle#L36 https://github.com/7ep/r3z/blob/51cc69bb6396c34f0507b67763487c9bc171a03e/build.gradle#L36

祝你好运!

Byron

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

即使 java gradle 工具链设置为 jdk 11,Gradle 仍使用 Java 1.8 构建 android 项目 的相关文章

随机推荐