You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非Android项目如何设置Kotlin编译器版本解决Compose编译兼容问题

故障根因

配置的Kotlin 1.6.10未生效、实际编译用了1.6.21,通常由三类问题导致:

  • pluginManagement块未做版本锁定,Kotlin系列插件被全局规则或传递依赖升级到1.6.21
  • IDE开启了内置Kotlin编译器覆写项目配置的选项,绕过了Gradle指定的版本
  • 构建缓存残留了之前高版本Kotlin的编译产物,触发版本错配
固定Kotlin编译器版本的可落地步骤

1. 锁死Gradle插件解析规则

在项目根目录的settings.gradle(Groovy语法)或settings.gradle.kts(Kotlin DSL)中添加插件版本强制规则,从插件层面阻断Kotlin版本被自动升级:

Kotlin DSL 配置示例

pluginManagement {
    repositories {
        gradlePluginPortal()
        mavenCentral()
        google()
        maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
    }
    resolutionStrategy {
        eachPlugin {
            if (requested.id.id.startsWith("org.jetbrains.kotlin")) {
                useVersion("1.6.10")
            }
        }
    }
}

Groovy 配置示例

pluginManagement {
    repositories {
        gradlePluginPortal()
        mavenCentral()
        google()
        maven { url "https://maven.pkg.jetbrains.space/public/p/compose/dev" }
    }
    resolutionStrategy {
        eachPlugin {
            if (requested.id.id.startsWith("org.jetbrains.kotlin")) {
                useVersion("1.6.10")
            }
        }
    }
}

2. 锁死依赖层面的Kotlin版本

在根目录构建脚本中给所有Kotlin相关依赖加强制版本规则,避免传递依赖拉高版本:

allprojects {
    configurations.all {
        resolutionStrategy {
            force("org.jetbrains.kotlin:kotlin-stdlib:1.6.10")
            force("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10")
            force("org.jetbrains.kotlin:kotlin-reflect:1.6.10")
        }
    }
}

3. 关闭IDE的版本覆写配置

  • 打开IDE设置面板,进入Build, Execution, Deployment > Build Tools > Gradle,确认Gradle调用路径使用项目wrapper,不要选择IDE内置的Gradle发行版
  • 进入Build, Execution, Deployment > Compiler > Kotlin Compiler,将Kotlin编译器版本设置为使用项目配置,不要手动指定IDE内置的1.6.21版本
  • 执行./gradlew clean清空构建缓存,再通过File > Invalidate Caches清空IDE缓存后重启,确保旧版本配置完全清除
非Android项目自定义Compose编译器版本方法

如果后续需要升级Kotlin版本,不需要依赖Android端的composeOptions块,直接在构建脚本的Compose配置块中指定编译器版本即可:

compose {
    kotlinCompilerPlugin.set("1.2.0-beta03")
}

注意:Compose Multiplatform 1.1.0官方仅兼容Kotlin 1.6.10,锁定版本后可彻底避免IDE或依赖自动升级Kotlin导致的兼容性问题,后续升级版本前先核对二者的兼容对应关系即可。

内容的提问来源于stack exchange,提问作者Tenfour04

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 02:42:28