代码之家  ›  专栏  ›  技术社区  ›  Rodion Altshuler

ktor:无法解析jacksonserializer

  •  0
  • Rodion Altshuler  · 技术社区  · 7 年前

    我尝试在Kotlin多平台项目的CommonMain模块中设置ktor HTTP客户端(如本文所述) https://ktor.io/clients/http-client/features/json-feature.html ,但无法解决对它的依赖关系:

        val client = HttpClient {
            install(JsonFeature) {
                serializer = JacksonSerializer()
            }
        }
    

    Gradle版本:4.7。

    以下是通用模块的build.grade:

    apply plugin: 'kotlin-multiplatform'
    apply plugin: 'kotlinx-serialization'
    
        kotlin {
            targets {
                // Change to `presets.iosArm64` to deploy the app to iPhone
                fromPreset(presets.iosX64, 'ios') {
                    compilations.main.outputKinds('FRAMEWORK')
                }
            }
            sourceSets {
                commonMain.dependencies {
                    implementation 'org.jetbrains.kotlin:kotlin-stdlib'
                    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core-common:$coroutines_version"
                    implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:$serialization_version"
    
                    implementation "io.ktor:ktor-client-core:$ktor_version"
                    implementation "io.ktor:ktor-client-json:$ktor_version"
                    implementation "io.ktor:ktor-client-jackson:$ktor_version"
                }
                commonTest {
                    dependencies {
                        implementation "org.jetbrains.kotlin:kotlin-test-common"
                        implementation "org.jetbrains.kotlin:kotlin-test-annotations-common"
                    }
                }
                iosMain {
                    dependencies {
                        implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core-native:$coroutines_version"
                        implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime-native:$serialization_version"
    
                        implementation "io.ktor:ktor-client-ios:$ktor_version"
                        implementation "io.ktor:ktor-client-core-ios:$ktor_version"
                        implementation "io.ktor:ktor-client-json-ios:$ktor_version"
                    }
                }
            }
        }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Sergey Mashkov    7 年前

    您不能在iOS上使用Jackson,因为它是特定于JVM的。在iOS上,只有kotlinx.serialization有效。