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

无法导出Kotlin Compose桌面项目:ComposePluginRegistrar与编译器版本不兼容

问题描述

导出Compose Desktop应用的.jar文件时出现版本兼容错误,报错信息如下:

Kotlin: The provided plugin androidx.compose.compiler.plugins.kotlin.ComposePluginRegistrar is not compatible with this version of compiler.
java.lang.AbstractMethodError: Receiver class androidx.compose.compiler.plugins.kotlin.ComposePluginRegistrar does not define or inherit an implementation of the resolved method 'abstract void registerProjectComponents(com.intellij.mock.MockProject, org.jetbrains.kotlin.config.CompilerConfiguration)' of interface org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar.
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$Companion.registerExtensionsFromPlugins$cli_base(KotlinCoreEnvironment.kt:689)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$ProjectEnvironment.registerExtensionsFromPlugins(KotlinCoreEnvironment.kt:164)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$Companion.configureProjectEnvironment(KotlinCoreEnvironment.kt:587)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.<init>(KotlinCoreEnvironment.kt:194)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.<init>(KotlinCoreEnvironment.kt)

当前项目配置文件:

build.gradle.kts

import org.jetbrains.compose.desktop.application.dsl.TargetFormat

plugins {
    kotlin("jvm")
    id("org.jetbrains.compose") version "1.5.10"
}

group = "com.jfresh"
version = "1.0-SNAPSHOT"

repositories {
    mavenCentral()
    maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
    google()
}

dependencies {
    implementation(compose.desktop.currentOs)
    implementation("com.seanproctor:data-table-material:0.5.1")
    implementation("com.google.code.gson:gson:2.10.1")
    implementation("com.squareup.okhttp3:okhttp:4.12.0")
    implementation("com.darkrockstudios:mpfilepicker:3.1.0")
    implementation("com.google.code.gson:gson:2.10.1")
}

compose.desktop {
    application {
        mainClass = "MainKt"

        nativeDistributions {
            targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
            packageName = "GroupExplorer"
            packageVersion = "1.0.0"
        }
    }
}

gradle.properties

org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
kotlin.code.style=official
kotlin.version=1.9.20
compose.version=1.5.10

已确认Kotlin 1.9.20与Compose 1.5.10版本匹配,新建Hello World项目导出jar仍报错,更换多组匹配版本问题依旧。

解决方案

以下是几个可尝试的修复步骤:

  • 强制指定Compose Compiler版本
    在build.gradle.kts的dependencies块中添加Compose Compiler的明确依赖,确保与Kotlin版本严格匹配:

    dependencies {
        // 保留原有依赖
        implementation(compose.desktop.currentOs)
        implementation("com.seanproctor:data-table-material:0.5.1")
        // 添加Compose Compiler依赖
        compiler("org.jetbrains.compose.compiler:compiler:1.5.10")
    }
    
  • 统一插件版本引用
    修改plugins块,将Kotlin插件版本与gradle.properties中的配置统一,避免隐式版本冲突:

    plugins {
        kotlin("jvm") version "${properties["kotlin.version"]}"
        id("org.jetbrains.compose") version "${properties["compose.version"]}"
    }
    
  • 升级Gradle版本
    Kotlin 1.9.20建议搭配Gradle 8.0及以上版本,修改gradle/wrapper/gradle-wrapper.properties:

    distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
    
  • 清理缓存并重新构建
    执行命令清理Gradle缓存,避免旧依赖残留:

    ./gradlew clean build --refresh-dependencies
    
  • 同步IDE Kotlin插件版本
    确保IntelliJ IDEA中的Kotlin插件版本与项目使用的1.9.20完全一致,不一致会导致编译时插件冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 09:46:21