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

艾伦

我试图将sqldelight集成到适用于Android / iOS的Multiplatform库项目中,但是在同步gradle时遇到一些无法解决的依赖项错误。

错误:无法解决':SharedCode @ debug / compileClasspath'的依赖关系:无法解决com.squareup.sqldelight:runtime:1.1.3。

错误:无法解析':SharedCode @ debug / compileClasspath'的依赖项:无法解析com.squareup.sqldelight:runtime-jvm:1.1.3。

错误:无法解决':SharedCode @ release / compileClasspath'的依赖关系:无法解决com.squareup.sqldelight:runtime:1.1.3。错误:无法解析':SharedCode @ release / compileClasspath'的依赖项:无法解析com.squareup.sqldelight:runtime-jvm:1.1.3。**

  • Gradle版本5.1.1

  • Gradle插件3.4.0

  • sqldelight 1.1.3

enableFeaturePreview('GRADLE_METADATA') 存在于我的settings.gradle中

我的项目gradle文件如下所示:

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 lib gradle文件:

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
狡猾的海狸

我解决了这个问题。第一:将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

如果需要,将实现添加到iosMain部分:

implementation "com.squareup.sqldelight:ios-driver:1.1.3"//DataBase

将元数据设置添加到gradle到settings.gradle文件:

enableFeaturePreview("GRADLE_METADATA") // IMPORTANT!

完全清理gradle文件,重置gradle包装器等。不要使用Kotlin 1.4.0。它不支持sqldelight 1.1.3版本将gradle更改为最新版本。您可以手动下载最新的gradle并在IDE上进行设置。您需要gradle 5.3.1或最新版本(不支持5.1.1)

如果错误仍然存​​在-将IDE更改为intellij idea社区版本

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法解析com.squareup.sqldelight:native-driver:1.3.0

错误:无法解析':app @ debug / compileClasspath'的依赖项:无法下载okhttp.jar(com.squareup.okhttp3:okhttp:4.3.1)

com.squareup.okhttp3库的Gradle依赖问题

Gradle 无法下载 okhttp.jar (com.squareup.okhttp3:okhttp:3.8.0)

无法启动服务peer0.org1.firstproject.com:b'OCI运行时创建失败:

JavaScript运行时错误:无法获取未定义或空引用的属性“ 1”

无法在azure函数运行时v1中创建python函数应用

无法在3.1 docker容器中运行dotnet转储-“进程1未运行兼容的.NET Core运行时”

无法导入com.squareup.okhttp.OkHttpClient;

运行时错误除以-1

为什么此python函数在for循环中运行时跳过索引1到3而不迭代索引2

Pytorch RNN 错误:运行时错误:输入必须有 3 个维度得到 1

AnalysisException: 无法解析 (_1,_2,_3) 中的列名“XYZ”

无法解析com.android.billingclient:billing:dp-1

运行时发生异常。null:InvocationTargetException:配置为侦听端口8080的连接器无法启动-> [帮助1]

在运行时键入族约束//无法匹配类型`1 <=?n0,带有“ True”

无法从Squareup API收到正确答案

CLRS是否完全准确地指出最大堆运行时间由重复量T(n)= T(2n / 3)+ O(1)来描述?

pytroch 数据加载器运行时错误:堆栈期望每个张量的大小相等,但在条目 0 处得到 [224, 224],在条目 1 处得到 [224, 224, 3]

Pytorch GRU 错误运行时错误:大小不匹配,m1:[1600 x 3],m2:[50 x 20]

运行时错误:给定组 = 721,在维度 0 处的预期权重至少为 721,但得到的权重大小为 [3, 1, 5, 5]

运行时错误:mat1 和 mat2 形状不能相乘(62x2304 和 1568x3)

如何在O(1)运行时上找到素数

运行时出现“ java.lang.ArrayIndexOutOfBoundsException:1”错误

紧急:运行时错误:索引超出范围1

使用O(1)运行时从向量中删除元素

Quartz 2.2.1,JMX 作业运行时总是-1?

awk:运行时错误:负字段索引$ -1

haskell长度运行时O(1)或O(n)