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

如何在Compose Desktop项目中正确配置Dagger 2?

正确配置Dagger 2到Compose Multiplatform桌面项目的方法

错误原因

你在sourceSets的jvmMain依赖块中直接使用kapt()方法是错误的——Kotlin Multiplatform的sourceSet依赖块不支持kapt语法,这才导致了「类型不匹配(需要Action,却找到String)」的错误。kapt是针对JVM目标的注解处理器,必须配置在对应JVM目标的依赖块内。

正确的build.gradle.kts配置

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

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

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()
        // 在这里配置kapt依赖
        dependencies {
            kapt("com.google.dagger:dagger-compiler:2.45")
        }
    }
    sourceSets {
        val jvmMain by getting {
            dependencies {
                implementation(compose.desktop.currentOs)
                implementation("com.google.dagger:dagger:2.45")
            }
        }
        val jvmTest by getting
    }
}

// 保留原有的compose桌面配置部分
compose.desktop {
    application {
        mainClass = "com.example.MainKt"
        nativeDistributions {
            targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
            packageName = "com.example"
            packageVersion = "1.0.0"
        }
    }
}

额外注意事项

  • 确保kapt插件版本和Kotlin版本匹配(示例中Kotlin版本为1.8.0,对应kapt版本一致是正确的)
  • 如果需要在测试代码中使用Dagger,需在jvm目标的testDependencies块中添加kaptTest("com.google.dagger:dagger-compiler:2.45")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 04:52:13