Не могу использовать комнату в настольном проекте KMP после выполнения этого руководства: https://funkymuse.dev/posts/kmp-room-setup/
Выдает эту ошибку при компиляции: AppDatabaseConstructor.kt:5:22 'фактический объект AppDatabaseConstructor : RoomDatabaseConstructor' не имеет соответствующего ожидаемого объявления
this это мой файл градиента:
plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.composeMultiplatform)
alias(libs.plugins.composeCompiler)
// Room
alias(libs.plugins.androidx.room)
alias(libs.plugins.ksp)
}
kotlin {
jvm("desktop")
sourceSets {
val desktopMain by getting
commonMain.dependencies {
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material)
implementation(compose.ui)
implementation(compose.components.resources)
implementation(compose.components.uiToolingPreview)
implementation(libs.androidx.lifecycle.viewmodel)
implementation(libs.androidx.lifecycle.runtime.compose)
//koin
implementation(project.dependencies.platform(libs.koin.bom))
implementation(libs.koin.core)
implementation(libs.koin.compose)
implementation(libs.koin.compose.viewmodel.navigation)
//retrofit
implementation("com.squareup.retrofit2:retrofit:2.11.0")
implementation("com.squareup.retrofit2:converter-jackson:2.11.0")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.18.2")
implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.13.0")
//room
implementation(libs.androidx.sqlite.bundled)
implementation(libs.androidx.room.runtime)
}
desktopMain.dependencies {
implementation(compose.desktop.currentOs)
implementation(libs.kotlinx.coroutines.swing)
}
}
}
dependencies {
add("kspDesktop", libs.androidx.room.compiler)
}
room {
schemaDirectory("$projectDir/schemas")
}
compose.desktop {
application {
mainClass = "com.package.MainKt"
nativeDistributions {
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
packageName = "com.package"
packageVersion = "1.0.0"
}
}
}
Вот как я создаю базу данных:
@Database(entities = [BusStopEntity::class], version = 1)
@ConstructedBy(AppDatabaseConstructor::class)
abstract class BusStopsDatabase : RoomDatabase() {
abstract fun busStopDao(): BusStopsDao
}
// The Room compiler generates the `actual` implementations.
@Suppress("NO_ACTUAL_FOR_EXPECT")
expect object AppDatabaseConstructor : RoomDatabaseConstructor {
override fun initialize(): BusStopsDatabase
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... ng-expecte
Проблема с пространством в многоплатформенной среде: AppDatabaseConstructor не имеет соответствующего ожидаемого объявле ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение