如何在 Kotlin Native 中使用 Http Request 库

Posted

技术标签:

【中文标题】如何在 Kotlin Native 中使用 Http Request 库【英文标题】:How to use Http Request lib in Kotlin Native 【发布时间】:2019-06-02 21:36:17 【问题描述】:

我是 Kotlin 本机的初学者,我的目标是构建一个我们的 Rest API 包含它的库,并在 iosandroid 上使用它。 我知道ktor 并在我的项目中实现了这一点,但是当我通过Gradle 运行build 项目时,我使用kotr 的对象时出现异常:

> Task :apiCore:androidProcessResources NO-SOURCE
> Task :apiCore:compileKotlinAndroid UP-TO-DATE
> Task :apiCore:androidMainClasses UP-TO-DATE
> Task :apiCore:androidJar UP-TO-DATE

> Task :apiCore:compileKotlinIOS
src/commonMain/kotlin/APICore.kt:3:8: error: unresolved reference: io
import io.ktor.client.HttpClient
   ^
src/commonMain/kotlin/APICore.kt:4:8: error: unresolved reference: io
import io.ktor.client.request.get
   ^
src/commonMain/kotlin/APICore.kt:10:17: error: unresolved reference: 
HttpClient
val client =  HttpClient()
            ^

Execution failed for task ':apiCore:compileKotlinIOS'.
> Process 'command '/Applications/Android 
Studio.app/Contents/jre/jdk/Contents/Home/bin/java'' finished with 
non-zero exit value 1

还有我的Gradle 用于多平台模块:

sourceSets 
    commonMain.dependencies 
        api 'org.jetbrains.kotlin:kotlin-stdlib-common'
        implementation("io.ktor:ktor-client-core:1.1.1")
    

    androidMain.dependencies 
        api 'org.jetbrains.kotlin:kotlin-stdlib'
        implementation ("io.ktor:ktor-client-android:1.1.1")
    

    iosMain.dependencies
        implementation "io.ktor:ktor-client-ios:1.1.1"
    

【问题讨论】:

【参考方案1】:

我明白了,我确实在其他论坛上阅读过有关问题,如果您将 gradle 降级到 4.7,这个问题将得到解决。 我降级了项目的等级并解决了。

【讨论】:

以上是关于如何在 Kotlin Native 中使用 Http Request 库的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Kotlin 同时定位 JVM/Native 和 Android

Kotlin/Native 垃圾收集器如何在 C 中工作?

Kotlin Multiplatform Mobile:Ktor - 如何在 Kotlin Native(iOS)中取消活动协程(网络请求、后台工作)?

如何使用 Kotlin/native 生成​​依赖于另一个的 .framework?

使用来自 Kotlin/Native 和 Gradle 的 Apple 依赖项,更具体地说是 SwiftUI

在 Kotlin Native 中,如何在不使用 C 指针的情况下将对象保留在单独的线程中,并从任何其他线程中改变其状态?