我正在开发我的多平台项目,并添加了基于 ktor 的后端模块作为其中的一部分 因为我想与这个后端模块共享我的通用代码,所以我已将其添加到依赖项中
implementation(project(":shared"))
但是共享 jvm 目标代码似乎存在问题(ktor 后端是) 我找到了一种解决方法,可以通过将此后端子模块标记为多平台本身来解决我的项目的依赖关系,但现在当我构建它并开始运行时,我收到此错误
错误:无法找到或加载主类com.owlsoft.backend.ServerKt
我的整个后端 ktor build.gradle.kts
plugins {
application
kotlin("multiplatform")
id("kotlinx-serialization")
}
kotlin {
jvm {
withJava()
}
}
application {
@Suppress("DEPRECATION")
mainClassName.set("com.owlsoft.backend.ServerKt")
}
dependencies {
implementation(Libs.Coroutines.core)
implementation(Libs.KtorServer.core)
implementation(Libs.KtorServer.netty)
implementation(Libs.KtorServer.serialization)
implementation(Libs.KtorServer.websockets)
implementation(Libs.kotlinSerialization) // JVM dependency
implementation("ch.qos.logback:logback-classic:1.2.3")
implementation(project(":shared"))
testImplementation(Libs.KtorServer.test)
}
tasks.register("stage") {
dependsOn("installDist")
}
我主要是想分享一些模型和业务逻辑 我只在多平台中使用 ktor 制作了后端模块来解决它无法获取共享模块更改的问题。
我在同样的场景中遇到了同样的问题。我是这样解决的:
Open Module Settings
backend
模块是否在您的项目内部,而不是作为上面的单独模块。删除单独的模块(如果存在)(代码将保持不变)。backend
中是否有此文件夹结构:src - jvmMain - kotlin - Server.kt
我认为根本原因是我使用 Android Studio 添加了
backend
模块,并且项目结构以某种方式破坏了。