Android构建失败:无法创建compileDebugAndroidTestJavaWithJavac任务
解决Android构建报错:无法创建':sample:compileDebugAndroidTestJavaWithJavac'任务
错误信息
A build operation failed. Could not create task ':sample:compileDebugAndroidTestJavaWithJavac'. Could not create task ':sample:compileDebugAndroidTestJavaWithJavac'. Failed to calculate the value of task ':sample:compileDebugAndroidTestJavaWithJavac' property 'javaCompiler'. Cannot find a Java installation on your machine matching this tasks requirements: {languageVersion=11, vendor=any, implementation=vendor-specific} for WINDOWS on x86_64. No locally installed toolchains match and toolchain download repositories have not been configured.
问题分析
核心问题点:
- AndroidTest编译任务要求使用Java 11,但本地未安装对应版本的JDK
- 项目配置存在版本冲突:Kotlin的
jvmToolchain指定Java 17,而Android的compileOptions设置为Java 11 - 未配置Gradle工具链仓库,导致Gradle无法自动下载缺失的JDK版本
解决方案
方案1:统一项目Java版本配置
选择Java 11或17作为统一版本,确保Kotlin工具链和Android编译选项版本一致:
选项A:统一使用Java 11
修改项目根build.gradle中的Kotlin工具链配置:
kotlin { jvmToolchain { languageVersion.set(JavaLanguageVersion.of(11)) } }
保持Android的compileOptions现有配置(已设置为Java 11)即可。
选项B:统一使用Java 17
修改Android的compileOptions配置:
android { // ... 其他配置项 compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } }
保持Kotlin的jvmToolchain为17不变。
方案2:配置Gradle自动下载工具链
若不想本地安装JDK,可配置Gradle工具链仓库,让Gradle自动下载对应版本:
在项目的settings.gradle.kts(或settings.gradle)中添加:
gradle.settingsEvaluated { plugins.withType<JavaPlugin> { java { toolchain { repository.set(mavenCentral()) } } } }
同时确保项目仓库配置中包含mavenCentral()。
方案3:本地安装对应JDK并配置
- 下载Java 11(或17)版本的JDK(如Adoptium、Oracle JDK)
- 打开Android Studio,进入
File > Project Structure > SDK Location - 在
JDK location中选择本地安装的JDK路径 - 可选:设置环境变量
JAVA_HOME指向该JDK目录,适配命令行构建场景
验证
修改配置后,点击Android Studio中的「Sync Project with Gradle Files」按钮,同步完成后重新构建项目即可解决报错。
内容的提问来源于stack exchange,提问作者Chinmay Gawde
相关产品推荐
相关产品推荐

