kotlin异步不';不编译

kotlin异步不';不编译,kotlin,kotlinx.coroutines,kotlin-experimental,Kotlin,Kotlinx.coroutines,Kotlin Experimental,下面的代码没有编译,尽管声明应该如此简单: override fun onResume() { super.onResume() async { Log.d("foo", "async") } } 错误是: ...kt: (31, 9): None of the following functions can be called with the arguments supplied: @Deprecated public fun <T> a

下面的代码没有编译,尽管声明应该如此简单:

override fun onResume() {
    super.onResume()
    async {
        Log.d("foo", "async")
    }
}
错误是:

...kt: (31, 9): None of the following functions can be called with the arguments supplied:
@Deprecated public fun <T> async(context: CoroutineContext, start: Boolean, block: suspend CoroutineScope.() -> ???): Deferred<???> defined in kotlinx.coroutines.experimental
public fun <T> async(context: CoroutineContext, start: CoroutineStart = ..., block: suspend CoroutineScope.() -> ???): Deferred<???> defined in kotlinx.coroutines.experimental
…kt:(31,9):使用提供的参数无法调用以下函数:
@不推荐使用的公共趣味异步(上下文:CoroutineContext,开始:Boolean,块:suspend CoroutineScope.(->?):在kotlinx.coroutines.experional中定义的延迟
public-fun异步(上下文:CoroutineContext,开始:CoroutineStart=…,块:挂起CoroutineScope.(->?):在kotlinx.coroutines.experional中定义的延迟

try不推荐使用
异步{}
方法:


我建议您阅读此

如果您将列出的签名与进行比较,这是非常不同的


看起来您使用的是旧版本的协同程序库,尤其是
上下文
没有默认值的库。

要在android应用程序中使用协同程序,必须向
kotlinx协同程序android
添加依赖项。

async
函数只能在协同程序或挂起函数中使用。因此,即使您具有正确的依赖项,如果您尝试在onResume()中使用
async
,您的代码也无法编译。

未弃用,请参阅我问题中错误的第3行;另请参阅官方文件:它没有被弃用。我不知道你在哪里看到的。是的,Kotlin anko中的异步方法已被弃用,但Kotlin coroutinesCan中的异步方法无法重现。Kotlin 1.2.41(是的,使用Android)@Zoe它需要一个依赖项:
override fun onResume() {
    super.onResume()
    doAsync {
        Log.d("foo", "async")
    }
}