2

我从 kotlin 示例中获取了这个简单的代码片段:

fun main(args: Array<String>) = runBlocking<Unit> {
    withTimeout(1300L) {
        repeat(1000) { i ->
            println("I'm sleeping $i ...")
            delay(500L)
        }
    }
}

当我尝试运行它时,它会抛出

java.lang.NoSuchMethodError: kotlinx.coroutines.experimental.ScheduledKt.withTimeout$default(JLjava/util/concurrent/TimeUnit;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Ljava/lang/Object;

我使用kotlinVersion = '1.1.51'

有什么建议吗?

4

1 回答 1

1

在您的情况下,请确保在您的 build.gradle 文件中启用 coroutines :

kotlin {
    experimental {
        coroutines "enable"
    }
}

此外,您应该使用 launch(UI) 触发协程并显式调用 wait() 和挂起的方法。您的其余代码将在 UI 线程上执行。

希望它解决了您的问题!

于 2017-10-31T09:31:35.427 回答