Схема базы данных Sqldelight не созданаAndroid

Форум для тех, кто программирует под Android
Ответить
Гость
 Схема базы данных Sqldelight не создана

Сообщение Гость »


У меня есть проект KMM, и я хочу использовать библиотеку SqlDelight, но при построении схемы базы данных проекта, а также объектов таблицы не создается.

фактический класс DatabaseDriverFactory(private val context: Context) { настоящее развлечение createDriver(): SqlDriver { //Неразрешенная ссылка: CoreDb return AndroidSqliteDriver(CoreDb.Schema, контекст, "test.db") } } Я определил папку sqldelight внутри моего общего модуля, а также создал папку для классов Kotlin, созданных функциями, как это настроено в gradle.build.kts, а также есть один *.sq внутри папки sqldelight

sqldelight { база данных("CoreDb") { packageName = "com.example.app.core.database" sourceFolders = listOf("sqldelight") диалект = "sqlite:3.24" } } Когда я запускаю задачу generateSqlDelightInterface, я просто вижу этот журнал

> Задача :core:generateAndroidDebugCoreDbInterface NO-SOURCE > Задача :core:generateAndroidReleaseCoreDbInterface NO-SOURCE > Задача :core:generateIosMainCoreDbInterface NO-SOURCE > Задача :core:generateMetadataCommonMainCoreDbInterface NO-SOURCE > Задача :core:generateMetadataMainCoreDbInterface NO-SOURCE > Задача :core:generateSqlDelightInterface ОБНОВЛЕНА не могу зарегистрировать checkAndroidModules ПОСТРОИТЕ УСПЕШНО за 311 мс 13:40:36: выполнение задачи завершено «generateSqlDelightInterface». Вот мой полный build.gradle.kts

import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget плагины { котлин("мультиплатформенность") котлин("плагин.сериализация") идентификатор("com.android.library") id("котлин-android-расширения") идентификатор("монета") id("com.squareup.sqldelight") } репозитории { GradlePluginPortal() Google() jcenter() mavenCentral() знаток { URL = uri("https://dl.bintray.com/kotlin/kotlin-eap") } знаток { URL = uri("https://dl.bintray.com/ekito/koin") } } котлин { андроид() val iOSTarget: (String, KotlinNativeTarget.() -> Unit) -> КотлинНативетаржет = if (System.getenv("SDK_NAME")?.startsWith("iphoneos") == true) ::iosArm64 еще ::iosX64 iOSTarget("ios") { двоичные файлы { рамки { baseName = "ядро" } } } val coroutinesVersion = "1.3.9-native-mt" вал ktor_version = "1.4.2" val сериализацияВерсия = "1.0.0-RC" val koin_version = "3.0.0-альфа-4" вал sqlDelight = "1.4.4" исходные наборы { val commonMain, получив { зависимости { реализация("io.ktor:ktor-client-core:$ktor_version") реализация("io.ktor:ktor-client-serialization:$ktor_version") реализация("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion") реализация("org.jetbrains.kotlinx:kotlinx-serialization-core:$serializationVersion") реализация("com.squareup.sqldelight:runtime:$sqlDelight") // Расширение SqlDelight реализация("com.squareup.sqldelight:coroutines-extensions:$sqlDelight") // Коин для Котлина реализация("org.koin:koin-core:$koin_version") //общие предпочтения реализация("com.russhwolf:мультиплатформенные настройки:0.6.3") } } val commonTest, получив { зависимости { реализация(kotlin("test-common")) реализация(kotlin("test-annotations-common")) } } val androidMain, получив { зависимости { реализация("androidx.core:core-ktx:1.3.2") реализация("io.ktor:ktor-client-android:$ktor_version") реализация("com.squareup.sqldelight:android-драйвер:$sqlDelight") } } val androidTest, получив { зависимости { реализация(kotlin("test-junit")) реализация("junit:junit:4.12") } } val iosMain, получив { зависимости { реализация("io.ktor:ktor-client-ios:$ktor_version") реализация("com.squareup.sqldelight:native-driver:$sqlDelight") } } val iosTest, получив } } андроид { компилироватьSdkVersion(29) sourceSets["main".].manifest.srcFile("src/androidMain/AndroidManifest.xml") defaultConfig { минСдкВерсия(23) targetSdkVersion(29) Код версии = 1 имя_версии = "1.0" } типы сборки { getByName("выпуск") { isMinifyEnabled = ложь } } } val PackForXcode по Tasks.creating(Sync::class) { группа = "построить" val mode = System.getenv("КОНФИГУРАЦИЯ") ?: "ОТЛАДКА" val sdkName = System.getenv("SDK_NAME") ?: "iphonesimulator" val targetName = "ios" + if (sdkName.startsWith("iphoneos")) "Arm64" else "X64" вал рамки = kotlin.targets.getByName("ios").binaries.getFramework(режим) inputs.property("режим", режим) зависит от(framework.linkTask) val targetDir = File(buildDir, "xcode-frameworks") from({ framework.outputDirectory }) в (целевойКаталог) } Tasks.getByName("build").dependentsOn(packForXcode) sqldelight { база данных("CoreDb") { packageName = "com.example.app.core.database" sourceFolders = listOf("sqldelight") диалект = "sqlite:3.24" } } и для верхнего уровня build.gradle

путь к классу "com.squareup.sqldelight:gradle-plugin:$sqlDelight"

Обновить

Структура папок моего проекта
корень приложение источник ... ядро //(общий модуль км) androidОсновной com.example.app.core база данных общийОсновной com.example.app.core база данных репозиторий ... sqldelight iosMain com.example.app.core база данных
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»