как исправить неразрешенную ссылку lifecycleScope? - PullRequest
0 голосов
/ 18 марта 2020

Попытка создать простой пример, использующий в операции kotlin сопрограммы:

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

Не удается избавиться от ошибки "unresolved reference lifecycleScope"

Соответствующая часть 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'
}

}

1 Ответ

2 голосов
/ 18 марта 2020

Согласно документации Lifecycle KTX , вы должны включить артефакт lifecycle-runtime-ktx, если вы хотите, чтобы Coroutine определял c расширения.

Обратите внимание, что lifecycle-runtime-ktx был введен только в Lifecycle 2.2.0 , поэтому вам нужно Мигрировать до AndroidX , а затем обновить до Lifecycle 2.2.0, если вы хотите использовать эту функцию.

...