当前位置: 首页 > 知识库问答 >
问题:

无法解析com.squareup.sqldelight:运行时:1.1.3

柯星辰
2023-03-14

我试图将sqldelight集成到Android/iOS的多平台库项目中,但在同步Gradle时出现了几个未解决的依赖错误。

错误:无法解析“:SharedCode@Debug/CompileClasspath”得依赖项:无法解析com.squareup.sqldelight:运行时:1.1.3.

错误:无法解析“:SharedCode@Release/CompileClasspath”得依赖项:无法解析com.squareup.sqldelight:运行时:1.1.3.错误:无法解析“:SharedCode@Release/CompileClasspath”的依赖项:无法解析com.squareup.sqldelight:运行时-jvm:1.1.3.**

>

  • 分级版本5.1.1

    Gradle插件3.4.0

    我的项目分级文件如下所示:

    buildscript {
        ext {
            kotlin_version = '1.3.31'
            ktor_version = '1.2.1'
            ktor_json_version = '1.2.1'
            kotlinx_coroutines_version = '1.2.1'
            serialization_version = '0.11.0'
            sqldelight_version = '1.1.3'
            dokka_version = '0.9.16'
        }
    
        repositories {
            google()
            jcenter()
            mavenCentral()
            gradlePluginPortal()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.4.0'
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
            classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
            classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:$dokka_version"
            classpath "com.squareup.sqldelight:gradle-plugin:$sqldelight_version"
        }
    }
    
    allprojects {
        repositories {
            google()
            jcenter()
            mavenCentral()
            maven { url "https://kotlin.bintray.com/kotlinx" }
        }
    }
    
    task clean(type: Delete) {
        setDelete rootProject.buildDir
    }
    

    我的SharedCode库分级文件:

    apply plugin: 'kotlinx-serialization'
    apply plugin: 'com.android.library'
    apply plugin: 'org.jetbrains.kotlin.multiplatform'
    apply plugin: 'com.squareup.sqldelight'
    
    group = 'com.example.multiplatform'
    version = '1.0'
    
    android {
        compileSdkVersion 27
        defaultConfig {
            minSdkVersion 15
        }
        buildTypes {
            release {
                minifyEnabled false
            }
        }
    }
    
    dependencies {
        // Specify Kotlin/JVM stdlib dependency.
        implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7'
        implementation "com.squareup.sqldelight:runtime:1.1.3"
    
        testImplementation 'junit:junit:4.12'
        testImplementation 'org.jetbrains.kotlin:kotlin-test'
        testImplementation 'org.jetbrains.kotlin:kotlin-test-junit'
    
        androidTestImplementation 'junit:junit:4.12'
        androidTestImplementation 'org.jetbrains.kotlin:kotlin-test'
        androidTestImplementation 'org.jetbrains.kotlin:kotlin-test-junit'
    
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    }
    
    kotlin {
        targets {
            final def iOSTarget = System.getenv('SDK_NAME')?.startsWith("iphoneos")  \
                               ? presets.iosArm64 : presets.iosX64
    
            fromPreset(iOSTarget, 'ios') {
                binaries {
                    framework('SharedCode')
                }
            }
    
            fromPreset(presets.android, 'androidLib')
        }
    
        sourceSets {
            commonMain {
                dependencies {
                    //HTTP
                    implementation "io.ktor:ktor-client-json:$ktor_json_version"
                    implementation "io.ktor:ktor-client-serialization:$ktor_version"
                    //Coroutines
                    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core-common:$kotlinx_coroutines_version"
                    //Kotlinx serialization
                    implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:$serialization_version"
                    //sqldelight
                    implementation "com.squareup.sqldelight:runtime:$sqldelight_version"
                }
            }
    
            androidLibMain {
                dependencies {
                    //HTTP
                    implementation "io.ktor:ktor-client-json-jvm:$ktor_json_version"
                    implementation "io.ktor:ktor-client-serialization-jvm:$ktor_version"
                    //Coroutines
                    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlinx_coroutines_version"
                    //Kotlinx serialization
                    implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime:$serialization_version"
                    //sqldelight
                    implementation "com.squareup.sqldelight:android-driver:$sqldelight_version"
                }
            }
    
            iosMain {
                dependencies {
                    //HTTP
                    implementation "io.ktor:ktor-client-ios:$ktor_version"
                    implementation "io.ktor:ktor-client-json-native:$ktor_json_version"
                    implementation "io.ktor:ktor-client-serialization-native:$ktor_version"
                    //Coroutines
                    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core-native:$kotlinx_coroutines_version"
                    //kotlinx serialization
                    implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-native:$serialization_version"
                    //sqldelight
                    implementation "com.squareup.sqldelight:ios-driver:$sqldelight_version"
                }
            }
        }
    }
    
    sqldelight {
        MyApp {
            packageName = 'com.example.multiplatform'
        }
    }
    
    configurations {
        compileClasspath
    }
    
    task packForXCode(type: Sync) {
        final File frameworkDir = new File(buildDir, "xcode-frameworks")
        final String mode = project.findProperty("XCODE_CONFIGURATION")?.toUpperCase() ?: 'DEBUG'
        final def framework = kotlin.targets.ios.binaries.getFramework("SharedCode", mode)
    
        inputs.property "mode", mode
        dependsOn framework.linkTask
    
        from { framework.outputFile.parentFile }
        into frameworkDir
    
        doLast {
            new File(frameworkDir, 'gradlew').with {
                text = "#!/bin/bash\nexport 'JAVA_HOME=${System.getProperty("java.home")}'\ncd '${rootProject.rootDir}'\n./gradlew \$@\n"
                setExecutable(true)
            }
        }
    }
    tasks.build.dependsOn packForXCode
    
  • 共有1个答案

    羊舌赞
    2023-03-14

    我被解决了这个问题。第一:对所有项目应用sqldelight插件权限:

    apply plugin: 'com.squareup.sqldelight'
    sqldelight {
        MyDatabase {
            packageName = "ru.trendagent.database"
            sourceFolders = ["sqldelight"]
        }
    }
    

    在android部分添加:

    packagingOptions {
            ...
            exclude 'META-INF/*.kotlin_module'
        }
    

    commonmain部分删除sqldelight的所有实现将实现添加到AndroidMain部分:

    implementation "com.squareup.sqldelight:android-driver:1.1.3" //DataBase
    
    implementation "com.squareup.sqldelight:ios-driver:1.1.3"//DataBase
    
    enableFeaturePreview("GRADLE_METADATA") // IMPORTANT!
    

    如果仍然存在错误-将IDE更改为intellij idea comunity edition

     类似资料:
    • 我的build.gradle文件如下: 正如您可以从注释出的行中看到的,我已经尝试了基于以前答案的多种组合 每个错误消息的公分母是 我也尝试过cd Android/&&gradlew clean,我也尝试过将gradle版本改为Classpath。结果都一样。 有什么建议吗?

    • 我遇到了一个奇怪的问题,我可以在Intellij中运行Spring Boot应用程序而没有问题,但当我这样做时: 我可以看到这样的错误:Spring Boot无法解析@value占位符。 我所做的研究是获取jar文件,并像使用一样提取这些文件,我可以在类路径根中看到属性文件。最初,我遇到了Maven没有将属性和静态数据从文件夹打包的问题,但我已经通过以下方法解决了这个问题: 有什么意见,想法,我会

    • 问题内容: 每当我断开互联网连接时,都会收到以下异常: 这 仅 在我离线时发生。hibernate时,在解析配置时是否尝试读取DTD?根本原因是什么? 这是我的hibernate.cfg.xml: 问题答案: Hibernate可以在本地解析DTD(无需网络连接)。 您的DOCTYPE使用的是Hibernate 3.6 的新名称空间(http://www.hibernate.org/dtd/),因

    • 问题内容: 我在Ubuntu 11.10上使用PyCharm 2.5,试图在Python 3.2.2上使用PyGObject 3.0开发应用程序。我已经安装了Ubuntu软件包python3-gobject,并且在运行代码时,它可以按预期工作。 但是,PyCharm似乎找不到任何PyGObject模块。它说,当我在import语句中将鼠标悬停在Gtk上时,自动补全当然不起作用。 这是我的代码: 我

    • 我正在用Expo构建react本机应用程序,所以我尝试使用bootstrap库中的组件。我创建了一个新项目: 然后我在项目文件夹中安装了库: 我得到了一些不相关的警告: 使用npm安装2个其他软件包。 npm警告可选跳过可选依赖项:fsevents@1.2.13(节点\u模块\fsevents):npm WARN notsup跳过可选依赖项:不支持的平台fsevents@1.2.13:通缉{“os