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

如何为Kotlin多平台库接入SqlDelight驱动?

解决SqlDelight插件找不到的问题

核心问题

Gradle提示“Plugin with id 'com.squareup.sqldelight' not found”,原因是Gradle不知道该插件的下载来源,且当前配置未指定插件版本。结合你使用的Gradle 5.6.1和Kotlin 1.3.41,需适配对应的SqlDelight 1.1.4版本。

修改步骤

1. 配置插件仓库与声明

项目根目录的build.gradle需要先让Gradle找到插件仓库,推荐用以下两种方式之一配置:

方式一:plugins块(推荐)

替换原plugins块,添加插件版本声明与仓库配置:

pluginManagement {
    repositories {
        gradlePluginPortal()
        mavenCentral()
        google()
    }
}

plugins {
    id 'org.jetbrains.kotlin.multiplatform' version '1.3.41'
    id 'com.squareup.sqldelight' version '1.1.4'
}

方式二:buildscript块

如果方式一不生效,可使用传统buildscript配置:

buildscript {
    repositories {
        gradlePluginPortal()
        mavenCentral()
        google()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.41"
        classpath "com.squareup.sqldelight:gradle-plugin:1.1.4"
    }
}

plugins {
    id 'org.jetbrains.kotlin.multiplatform' version '1.3.41'
}

2. 清理重复配置

删除原配置中的apply plugin: 'com.squareup.sqldelight',避免重复应用插件。

3. 完善多平台与SqlDelight配置

因为你要开发Kotlin Native,需添加对应Native目标(如macosX64、iosArm64),并配置SqlDelight的驱动与代码生成:

kotlin {
    jvm()
    // 添加你需要的Native目标,示例为macOS
    macosX64("macos")

    sourceSets {
        commonMain {
            dependencies {
                implementation kotlin('stdlib-common')
                implementation "com.squareup.sqldelight:runtime:1.1.4"
            }
        }
        commonTest {
            dependencies {
                implementation kotlin('test-common')
                implementation kotlin('test-annotations-common')
            }
        }
        jvmMain {
            dependencies {
                implementation kotlin('stdlib-jdk8')
                implementation "com.squareup.sqldelight:sqlite-driver:1.1.4"
            }
        }
        macosMain {
            dependencies {
                implementation "com.squareup.sqldelight:native-driver:1.1.4"
            }
        }
        jvmTest {
            dependencies {
                implementation kotlin('test')
                implementation kotlin('test-junit')
            }
        }
    }
}

// 配置SqlDelight数据库代码生成
sqldelight {
    database("MyDatabase") {
        packageName = "com.example.test.db"
    }
}

4. 验证同步

修改完成后点击Gradle的「Sync Now」按钮同步项目。若仍有问题,检查:

  • Gradle 5.6.1是否能正常访问gradlePluginPortal、mavenCentral仓库
  • 插件版本与Kotlin版本是否匹配(SqlDelight 1.1.4兼容Kotlin 1.3.x)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:50:26