我使用 IJ Idea(单一桌面平台)创建了一个新的 Compose Multiplatform 项目。
尝试将匕首添加到
build.gradle.kts
模板:
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
plugins {
kotlin("multiplatform")
id("org.jetbrains.compose")
kotlin("kapt") version "1.8.0" //Add kapt-plugin --OK
}
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)
implementation("com.google.dagger:dagger:2.45") //add dependency --OK
kapt("com.google.dagger:dagger-compiler:2.45") //add compiler for kapt --NOT-OK
}
}
val jvmTest by getting
}
}
...
出现有关类型不匹配的设计时错误(需要操作,找到字符串)。 将 dagger2 应用于 IJ Idea 生成的
build.gradle
模板的正确方法是什么?
我想我在这里找到了与您的问题相关的内容https://slack-chats.kotlinlang.org/t/519730/do-you-use-dependency-injection-library-for-your-desktop-app
作为本次讨论的一部分,建议使用 Koin 作为 Dagger2 的替代品,以便在开发 KMP 应用程序时使用 di。因为 Dagger 是用 Java 编写的,而 Koin 是用 Kotlin 编写的。