IntelliJ对kotlinx.serialization报错但编译正常的问题求助
Kotlin Multiplatform项目IntelliJ中
@Serializable注解未解析问题 在Kotlin Multiplatform项目中使用Kotlin 1.7.x版本时,IntelliJ出现以下异常提示:
@Serializable注解被标记为属于kotlin.io内部,无法访问kotlinx.serialization包显示为未解析引用
降级至Kotlin 1.6.10版本后问题完全消失,但Gradle在1.7.10版本下仍能正常编译并运行应用,因此推测该问题由IntelliJ或相关IDE设置导致。
已尝试以下修复方法均未解决问题:
- 重新加载Gradle项目
- 刷新Gradle依赖
- 使用
Repair IDE工具完全刷新项目索引 - 删除
.idea和.gradle文件夹 - 调整项目结构版本
- 调整各类依赖版本与IDE配置
项目配置代码
build.gradle.kts
plugins { application kotlin("multiplatform") version Versions.kotlin kotlin("plugin.serialization") version Versions.kotlin } group = "com.example" version = "4.0" repositories { mavenCentral() } kotlin { jvm { compilations.all { kotlinOptions.jvmTarget = "17" } withJava() testRuns["test"].executionTask.configure { useJUnitPlatform() } } js { binaries.executable() browser { commonWebpackConfig { cssSupport.enabled = true } webpackTask { outputFileName = "app.js" } } } sourceSets { val commonMain by getting { dependencies { implementation("io.ktor:ktor-client-core:${Versions.ktor}") implementation("io.ktor:ktor-client-websockets:${Versions.ktor}") implementation("io.ktor:ktor-serialization-kotlinx-json:${Versions.ktor}") implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:${Versions.serialization}") } } val commonTest by getting { dependencies { implementation(kotlin("test-common")) implementation(kotlin("test-annotations-common")) } } val jvmMain by getting { dependencies { implementation("io.ktor:ktor-server-core:${Versions.ktor}") implementation("io.ktor:ktor-server-auth:${Versions.ktor}") implementation("io.ktor:ktor-serialization:${Versions.ktor}") implementation("io.ktor:ktor-server-html-builder:${Versions.ktor}") implementation("io.ktor:ktor-client-cio:${Versions.ktor}") implementation("io.ktor:ktor-server-cio:${Versions.ktor}") implementation("io.ktor:ktor-server-websockets:${Versions.ktor}") } } val jvmTest by getting val jsMain by getting { dependencies { implementation("io.ktor:ktor-client-js:${Versions.ktor}") implementation("io.ktor:ktor-client-json:${Versions.ktor}") implementation("io.ktor:ktor-client-auth:${Versions.ktor}") implementation("io.ktor:ktor-client-websockets:${Versions.ktor}") implementation("io.ktor:ktor-client-serialization:${Versions.ktor}") implementation("org.jetbrains.kotlin-wrappers:kotlin-react:${Versions.react}") implementation("org.jetbrains.kotlin-wrappers:kotlin-react-dom:${Versions.react}") } } val jsTest by getting } } application { mainClass.set("com.example.app.ServerKt") } tasks.named<Copy>("jvmProcessResources") { val jsBrowserDistribution = tasks.named("jsBrowserDistribution") from(jsBrowserDistribution) } tasks.named<JavaExec>("run") { dependsOn(tasks.named<Jar>("jvmJar")) classpath(tasks.named<Jar>("jvmJar")) }
Versions对象代码
object Versions { const val ktor = "2.0.3" const val kotlin = "1.7.10" const val coroutines = "1.6.3" const val serialization = "1.3.3" const val react = "18.2.0-pre.358-compat" }
出现问题的类代码
import kotlinx.serialization.Serializable @Serializable data class Customer(val id: Int, val firstName: String, val lastName: String)
报错截图


恳请各位提供解决帮助。
内容的提问来源于stack exchange,提问作者Andavin
相关产品推荐
相关产品推荐

