Execution failed for task ':app:compileDebugKotlin' 的根因需优先查看「Caused by」后首条异常:若为“Could not resolve kotlin-stdlib”则属依赖拉取失败;若为“incompatible version of Kotlin”或JVM target不一致(如Java 1.8 vs Kotlin 17),则需同步android.compileOptions与kotlinOptions.jvmTarget,并核对Compose Compiler兼容性。

看清楚错误堆栈里真正的根因
Gradle 报 Execution failed for task ':app:compileDebugKotlin' 时,90% 的人第一反应是去改 kotlinOptions.jvmTarget,但其实错误日志最上面几行才藏了关键线索。重点盯住「Caused by」之后的第一条异常,比如:Could not resolve org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72 或 Module was compiled with an incompatible version of Kotlin —— 前者是依赖拉不到,后者才是版本不匹配。
检查 Kotlin 与 Java 的 targetCompatibility 是否对齐
不对齐是最常见的硬性失败原因,尤其在升级 Gradle 或 JDK 后容易被忽略。Android 项目必须同时配置两处:
-
android.compileOptions.sourceCompatibility和targetCompatibility要和kotlinOptions.jvmTarget完全一致(如都设为"17") - 如果用了 Jetpack Compose,还要核对
composeCompiler版本是否支持当前 Kotlin 版本(查 官方兼容表) - 非 Android 项目(纯 Kotlin JVM)则只需确保
kotlinOptions.jvmTarget与javaToolchain.version一致
排查 kotlin-stdlib 相关依赖是否缺失或冲突
kotlin-stdlib-jdk8 找不到不是网络问题,而是 Gradle 解析时卡在了元数据层。常见诱因有:
- 本地缓存损坏:删掉
~/.gradle/caches/modules-2/metadata-下对应版本的文件夹再重试 - 仓库镜像失效:临时注释掉
build.gradle中自定义的repositories,只留mavenCentral() - 间接依赖污染:运行
./gradlew app:dependencies --configuration compileClasspath,搜kotlin-stdlib看是否混入了多个版本 - 强制统一版本:在
configurations.all里加resolutionStrategy.force 'org.jetbrains.kotlin:kotlin-stdlib:1.9.24'
留意 Kotlin 编译守护进程(daemon)连接失败
报 Could not connect to Kotlin compile daemon 时,不是代码问题,而是编译环境卡住了:
- 先执行
./gradlew --stop杀掉所有 daemon 进程 - 检查
org.gradle.jvmargs是否设得太小(如-Xmx512m),Kotlin daemon 启动需要至少-Xmx1g - 某些 IDE 插件(如旧版 Lombok)会干扰 daemon 初始化,可临时禁用验证
- Windows 上杀不干净时,手动在任务管理器里结束所有
java.exe进程
kotlin-stdlib-common:1.8.0,而你主项目用的是 1.9.24,这种二进制不兼容不会立刻报错,但会在运行时炸。所以只要看到 “incompatible version” 类提示,优先跑一遍依赖树,别急着改配置。


















