gradle 构建Kotlin和Jetpack Compose桌面项目时的错误消息:ComposeComponentRegistrar插件不兼容

lnlaulya  于 2023-04-12  发布在  Kotlin
关注(0)|答案(1)|浏览(326)

我目前正在IntelliJ中使用Kotlin、Jetpack Compose和Gradle开发一个桌面项目。我在构建阶段遇到了一个问题,我收到了以下错误消息:

Kotlin: The provided plugin androidx.compose.compiler.plugins.kotlin.ComposeComponentRegistrar is not compatible with this version of compiler.
java.lang.AbstractMethodError: Receiver class androidx.compose.compiler.plugins.kotlin.ComposeComponentRegistrar 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(KotlinCoreEnvironment.kt:666)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$ProjectEnvironment.registerExtensionsFromPlugins(KotlinCoreEnvironment.kt:168)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$Companion.configureProjectEnvironment(KotlinCoreEnvironment.kt:569)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.<init>(KotlinCoreEnvironment.kt:198)
    at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment.<init>(KotlinCoreEnvironment.kt:107)

这是我的建筑。gradle。kts:

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

plugins {
    kotlin("multiplatform")
    id("org.jetbrains.compose")
}

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

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

kotlin {
    jvm {
        jvmToolchain(11)
        withJava()
    }
    sourceSets {
        val jvmMain by getting {
            dependencies {
                implementation(compose.desktop.currentOs)
            }
        }
        val jvmTest by getting
    }
}

compose.desktop {
    application {
        mainClass = "MainKt"
        nativeDistributions {
            targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
            packageName = "demo"
            packageVersion = "1.0.0"
        }
    }
}

以下是我的www.example.com文件的当前设置gradle.properties(我尝试了不同的设置,但没有成功):

kotlin.code.style=official
kotlin.version=1.8.0
agp.version=7.3.0
compose.version=1.3.0

我尝试使用不同版本的Kotlin和Jetpack Compose,但仍然遇到相同的错误。重要的是要注意,如果编译,程序可以正确运行。我希望项目能够成功构建,没有任何错误。

ekqde3dh

ekqde3dh1#

当Kotlin编译器和Compose编译器插件的版本不匹配时会发生此错误。要修复此错误,您需要确保Kotlin编译器和Compose编译器插件的版本兼容。
在您的情况下,您使用的是Kotlin1.8.0,这不是有效的版本。您应该将版本更新到最新的稳定版本,目前是1.6.10。
此外,由于您使用的是Jetpack Compose 1.3.0版本,因此您应该使用与其兼容的Compose编译器插件版本。根据Compose文档,Compose编译器插件1.0.5版本与Jetpack Compose 1.3.0版本兼容。
要修复此错误,您可以将gradle.properties文件更新为以下内容:

kotlin.code.style=official
kotlin.version=1.6.10
agp.version=7.3.0
compose.version=1.3.0

然后,更新build.gradle.kts文件以使用Compose编译器插件的1.0.5版本:

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

plugins {
    kotlin("multiplatform")
    id("org.jetbrains.compose") version "1.0.5"
}

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

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

kotlin {
    jvm {
        jvmToolchain(11)
        withJava()
    }
    sourceSets {
        val jvmMain by getting {
            dependencies {
                implementation(compose.desktop.currentOs)
            }
        }
        val jvmTest by getting
    }
}

compose.desktop {
    application {
        mainClass = "MainKt"
        nativeDistributions {
            targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
            packageName = "demo"
            packageVersion = "1.0.0"
        }
    }
}

更新文件后,请同步Gradle项目,然后再次尝试构建。这应该可以解决错误。

相关问题