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

Kotlin Multiplatform出现Unresolved reference等引用问题求助

解决Ktor+SQLDelight多平台项目的未解析引用问题

核心排查方向(针对Gradle配置)

  • 验证Kotlin序列化插件与依赖一致性
    确保项目根或模块级build.gradle.kts中,序列化插件版本与Kotlin版本完全匹配:

    plugins {
        kotlin("multiplatform") version "1.9.20"
        kotlin("plugin.serialization") version "1.9.20"
    }
    

    同时在commonMain的依赖中添加序列化核心库:

    sourceSets {
        val commonMain by getting {
            dependencies {
                implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.0")
            }
        }
    }
    
  • 确认实体类目录的SourceSet配置
    检查模块build.gradle.kts,确保实体类所在目录被正确纳入对应SourceSet:

    sourceSets {
        val commonMain by getting {
            kotlin.srcDir("src/commonMain/kotlin")
            // 若实体类在子目录,无需额外配置,只要路径符合包结构即可
        }
    }
    
  • 检查SQLDelight代码生成配置
    若RocketLaunch是SQLDelight生成类,需确保插件配置正确且生成目录被IDE识别:

    plugins {
        id("app.cash.sqldelight") version "2.0.1"
    }
    
    sqldelight {
        databases {
            create("AppDatabase") {
                packageName = "com.yourproject.db"
            }
        }
    }
    

    生成代码默认在build/generated/sqldelight/,需确保IDE未排除该目录(可在Settings -> Build -> Compiler -> Annotation Processors中检查)。

  • 深度清理构建缓存
    除Invalidate and Restart外,执行以下操作:

    • 运行Gradle的clean任务,再执行build
    • 删除项目根目录的.gradle文件夹,重新同步Gradle

基础校验点

  • 核对实体类包名与引用处的import语句,确保无拼写或路径错误
  • 确认@Serializable注解导入的是kotlinx.serialization.Serializable,而非其他包下的同名注解

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 05:12:02