构建应用失败:无法创建compileDebugAndroidTestJavaWithJavac任务
解决Gradle构建时找不到Adoptium Java 17工具链的问题
错误信息
A build operation failed. Could not create task ':app:compileDebugAndroidTestJavaWithJavac'. Could not create task ':app:compileDebugAndroidTestJavaWithJavac'. Failed to calculate the value of task ':app:compileDebugAndroidTestJavaWithJavac' property 'javaCompiler'. Cannot find a Java installation on your machine matching this tasks requirements: {languageVersion=17, vendor=ADOPTIUM, implementation=vendor-specific} for MAC_OS on aarch64. No locally installed toolchains match and toolchain download repositories have not been configured.
当前build.gradle配置
compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } java { toolchain { languageVersion = JavaLanguageVersion.of(17) vendor = JvmVendorSpec.ADOPTIUM // Or use JvmVendorSpec.TEMURIN } }
已安装的Java版本
终端输出:openjdk version "17.0.13" 2024-10-15
问题原因
你安装的是OpenJDK,但Gradle配置里强制要求使用**Adoptium(即Temurin)**厂商的Java 17,两者厂商标识不匹配,导致Gradle无法找到符合要求的工具链。
解决方案
方案1:移除厂商限制(最简单)
修改build.gradle中的toolchain配置,去掉vendor指定,让Gradle自动匹配本地已安装的Java 17:
java { toolchain { languageVersion = JavaLanguageVersion.of(17) // 注释或删除vendor配置行 // vendor = JvmVendorSpec.ADOPTIUM } }
修改后重新执行构建即可。
方案2:安装Adoptium/Temurin版Java 17
如果必须指定Adoptium厂商,直接安装Eclipse Temurin(原Adoptium)的Java 17:
- 下载对应aarch64架构的MAC版本JDK 17
- 安装后Gradle会自动识别到符合要求的工具链,无需额外配置
方案3:配置Gradle自动下载工具链
允许Gradle自动下载符合要求的Adoptium Java 17,在settings.gradle中添加仓库配置:
pluginManagement { repositories { gradlePluginPortal() google() mavenCentral() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url "https://repo.adoptium.net/maven/virtualized/" } } }
保存后重新执行构建,Gradle会自动下载并使用指定的工具链。
内容的提问来源于stack exchange,提问作者Shift72
相关产品推荐
相关产品推荐

