我尝试使用 Kotlin 协程通道并收到 ObsoleteCoroutinesApi 警告。替换在哪里?

col*_*ots 5 kotlin kotlinx.coroutines

我尝试使用 Kotlin 的协程通道,但收到有关使用 ObsoleteCoroutinesApi 的代码的警告。已弃用的频道代码的替代品在哪里?

col*_*ots 5

截至今天,Kotlin 协程通道 API 尚无替代品。尽管命名混乱,但他们添加了此注释以表明现有 API 正在被重写并将被替换。

这是一个你可以接受的警告。如果您kotlinOptions.allWarningsAsErrors = true阻止您构建您的应用程序,您可以简单地将@ObsoleteCoroutinesApi注释添加到类的顶部,以表明您接受代码需要更改的风险。

但是,这可能会很快失控,因为您需要将这些标记应用于使用这些 API 的每个类,然后是使用这些类的每个依赖项,无止境。要在项目范围内接受这些风险,请将以下内容添加到您的 gradle 选项中:

    kotlinOptions.freeCompilerArgs += [
            "-Xuse-experimental=kotlinx.coroutines.ExperimentalCoroutinesApi",
            "-Xuse-experimental=kotlinx.coroutines.ObsoleteCoroutinesApi"]
Run Code Online (Sandbox Code Playgroud)

当存在替代 API 时,请随时更新此答案。

  • 从 1.3.70 开始,使用 `-Xopt-in` 替换 `-Xuse-experimental`。`"-Xopt-in=kotlin.RequiresOptIn", "-Xopt-in=kotlin.OptIn"` (2认同)