KMPでRoomを使う際のセットアップ
geDem
もくじ
公式ドキュメントで記載のあるライブラリをlibs.versions.tomlに記載し、build.gradle.ktsで読み込みます。
roomを使う場合はkspも必要なので追加します。
注意点
- roomは2.7.0以上のバージョンを使用すること
- KotlinとKspのバージョンを合わせること
- Kotlinの1.9.xを使用している場合は、gradle.propertiesに「kotlin.native.disableCompilerDaemon = true」を記載すること
libs.versions.toml[versions]
agp = "8.5.2"
kotlin = "2.1.0"
...
room = "2.7.0-alpha11"
ksp = "2.1.0-1.0.29"
sqlite = "2.5"
[libraries]
...
room-gradle-plugin = { module = "androidx.room:room-gradle-plugin", version.ref = "room" }
room-runtime = { module = "androidx.room:room-runtime", version.ref = "room"}
room-compiler = { module = "androidx.room:room-compiler", version.ref = "room"}
sqlite-bundled = { module = "androidx.sqlite:sqlite-bundled", version.ref = "sqlite" }
[plugins]
...
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
room = { id = "androidx.room", version.ref = "room"}
sharedのgradle↓
build.gradleimport org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
...
alias(libs.plugins.room)
alias(libs.plugins.ksp)
}
kotlin {
...
sourceSets {
commonMain.dependencies {
implementation(libs.room.runtime)
implementation(libs.sqlite.bundled)
}
commonTest.dependencies {
...
}
}
}
dependencies {
add("kspCommonMainMetadata", libs.room.compiler)
add("kspAndroid", libs.room.compiler)
add("kspIosSimulatorArm64", libs.room.compiler)
add("kspIosX64", libs.room.compiler)
add("kspIosArm64", libs.room.compiler)
}
room {
schemaDirectory("$projectDir/schemas")
}
androidAppのgradle↓
build.gradle.kts...
dependencies {
implementation(projects.shared)
...
}
🙂↕️最後まで読んでいただきありがとうございます🙂↕️