如何修复未解析的引用生命周期范围?

gia*_*olo 8 android gradle kotlin build.gradle kotlin-coroutines

尝试构建一个在活动中使用 kotlin 协程的简单示例:

   lifecycleScope.launch {
             val result = httpGet("http://hmkcode-api.appspot.com/rest/api/hello/Android")
              textView.setText(result)
   }
Run Code Online (Sandbox Code Playgroud)

无法摆脱错误“未解析的引用生命周期范围”

gradle 文件的相关部分:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'



dependencies {

implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.2'
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-rx2:1.3.2"

def androidArchVersion = '1.1.1'
implementation "android.arch.lifecycle:viewmodel:$androidArchVersion"
implementation "android.arch.lifecycle:livedata:$androidArchVersion"
annotationProcessor "android.arch.lifecycle:compiler:$androidArchVersion"
testImplementation "android.arch.core:core-testing:$androidArchVersion"
implementation "android.arch.lifecycle:extensions:$androidArchVersion"
}

kotlinOptions {
    jvmTarget = '1.8'
    apiVersion = '1.3'
    languageVersion = '1.3'
}
Run Code Online (Sandbox Code Playgroud)

}

ian*_*ake 10

根据Lifecycle KTX 文档lifecycle-runtime-ktx如果您想要 Coroutine 特定的扩展,则必须包含工件。

请注意,lifecycle-runtime-ktx仅在Lifecycle 2.2.0 中引入,因此您需要迁移到 AndroidX,然后升级到 Lifecycle2.2.0如果您想使用该功能。


mit*_*nko 8

这里回复晚了,但我也遇到了这个问题,最终通过将继承的 Android 更改ActivityAppCompatActivity.