无法导出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
相关产品推荐
相关产品推荐

