Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin/本机can';t导入io.ktor.network.selector.ActorSelectorManager_Kotlin_Ktor_Kotlin Native - Fatal编程技术网

Kotlin/本机can';t导入io.ktor.network.selector.ActorSelectorManager

Kotlin/本机can';t导入io.ktor.network.selector.ActorSelectorManager,kotlin,ktor,kotlin-native,Kotlin,Ktor,Kotlin Native,我想使用KTOR在Kotlin/Native中使用TCP套接字,我遵循了相应的步骤。但不知何故,我无法从io.ktor.network.selector导入ActorSelectorManager并获取未解析的引用:ActorSelectorManager 我的build.gradle.kts如下所示: plugins { kotlin("multiplatform") version "1.4.32" kotlin("plugi

我想使用KTOR在Kotlin/Native中使用TCP套接字,我遵循了相应的步骤。但不知何故,我无法从
io.ktor.network.selector
导入
ActorSelectorManager
并获取
未解析的引用:ActorSelectorManager

我的
build.gradle.kts
如下所示:

plugins {
    kotlin("multiplatform") version "1.4.32"
    kotlin("plugin.serialization") version "1.4.32"
}
repositories {
    mavenCentral()
    jcenter()
    maven { url = uri("https://plugins.gradle.org/m2/") }
    maven { url = uri("http://dl.bintray.com/kotlin/kotlin-dev") }
    maven { url = uri("https://kotlin.bintray.com/kotlinx") }
}

kotlin {
    val hostOs = System.getProperty("os.name")
    val isMingwX64 = hostOs.startsWith("Windows")
    val target = when {
        hostOs == "Mac OS X" -> macosX64("SocketStuff")
        hostOs == "Linux" -> linuxX64("SocketStuff")
        isMingwX64 -> mingwX64("SocketStuff")
        else -> throw GradleException("Host OS is not supported in Kotlin/Native.")
    }

    target.apply {
        binaries {
            executable {
                entryPoint = "main"
            }
        }
    }

    sourceSets {
        val Main by getting
        val Test by getting
        commonMain {
            sourceSets["commonMain"].dependencies {
                implementation("io.ktor:ktor-network:1.5.3")
            }
        }
    }
}


有人知道我是否忘记添加依赖项或什么吗?

JVM上有
ActorSelectorManager
,本机目标上有
WorkerSelectorManager
。您可以使用构造函数
SelectorManager()
实例化相应的选择器管理器实例:

import io.ktor.network.selector.*

fun main() {
    val manager = SelectorManager()
}

第一:谢谢你的回答。不幸的是,我得到
这个API在ktor中是内部的,不应该使用。它可以在不通知的情况下删除或更改。
还有其他方法吗?我可以添加
@OptIn(InternalAPI::class)
,但我不想说这个注释没有任何意义,在2.0.0版中将被删除,所以请随意使用这个函数。我只有最后一个问题:我得到
编译失败:声明public kotlinx.coroutines/SingleThreadDispatcher | null[0]找不到
这意味着什么?尝试在本机目标上使用具有多线程支持的协程库:
实现“org.jetbrains.kotlinx:kotlinx协程核心:1.4.3-native-mt”
我现在检测到
未完成的工作线程,1个工作线程泄漏