试着为Kotlin coroutines运行一些示例,但无法构建我的项目。我正在使用最新的gradle版本- 4.1
有什么建议要检查/修正吗?
这是build.gradle
buildscript {
ext.kotlin_version = '1.1.4-3'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
apply plugin: 'kotlin'
apply plugin: 'application'
kotlin {
repositories {
jcenter()
}
experimental {
coroutines 'enable'
}
dependencies {
compile "org.jetbrains.kotlinx:kotlinx-coroutines-core:0.18"
}
}和main.kt
fun main(args: Array<String>) {
launch (CommonPool) {
delay(1000L)
println("World!")
}
println("Hello, ")
Thread.sleep(2000L)
}当我运行gradle compileKotlin时,我得到以下信息
e: /Users/philippgrigoryev/projects/kotlin-coroutines/src/main/kotlin/main.kt: (2, 5): Unresolved reference: launch
e: /Users/philippgrigoryev/projects/kotlin-coroutines/src/main/kotlin/main.kt: (2, 13): Unresolved reference: CommonPool
e: /Users/philippgrigoryev/projects/kotlin-coroutines/src/main/kotlin/main.kt: (3, 9): Unresolved reference: delay`发布于 2017-09-10 03:54:55
与注释中已经回答的一样,kotlinx.coroutines.experimental.*包缺少导入。如果您愿意,可以在GitHub上查看我的示例。
import kotlinx.coroutines.experimental.*
fun main(args: Array<String>) {
launch(CommonPool) {
delay(1000)
LOG.debug("Hello from coroutine")
}
}发布于 2019-06-13 11:16:39
发射不再直接使用。Kotlin文档建议使用:
fun main() {
GlobalScope.launch { // launch a new coroutine in background and continue
delay(1000L)
println("World!")
}
println("Hello,") // main thread continues here immediately
runBlocking { // but this expression blocks the main thread
delay(2000L) // ... while we delay for 2 seconds to keep JVM alive
}
}发布于 2018-12-12 04:47:50
如果您使用的是Coroutines 1.0+,则导入不再是
进口kotlinx.coroutin.实验性
但
导入kotlinx.coroutines.launch
在build.gradle的依赖项闭包中(对于Coroutines 1.0.1),您需要以下内容:
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.0.1'
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.0.1"https://stackoverflow.com/questions/46136136
复制相似问题