Skip to content

从 Room 迁移到 Kotlin Multiplatform

将现有 Android 代码库中的 Room 用例迁移到通用的共享 KMP 模块的难度可能差别很大,具体取决于所使用的 Room API 或 代码库已经使用协程了。

依赖配置 (Build.gradle.kts)

在共享模块的 commonMain 中添加 Room 依赖,并配置 KSP:

kotlin
plugins {
    alias(libs.plugins.kotlin.multiplatform)
    alias(libs.plugins.google.ksp)
    alias(libs.plugins.androidx.room)
}

kotlin {
    sourceSets {
        commonMain.dependencies {
            implementation(libs.androidx.room.runtime)
            implementation(libs.sqlite.bundled) // KMP 必须使用打包好的 SQLite
        }
    }
}

dependencies {
    // 为所有目标平台生成代码
    ksp(libs.androidx.room.compiler)
}

room {
    schemaDirectory("$projectDir/schemas")
}

从 Room 迁移到 Kotlin Multiplatform 官方文档