Неразрешенная ссылка: viewModelScope

Я пытаюсь использовать viewModelScope.launch(Dispatchers.IO) в моем Android-проекте android studio, чтобы показать ошибку «Неразрешенная ссылка: viewModelScope». Я копирую и вставляю зависимость с официального сайта. Я также пытался перейти на Android X.

Я добавил последнюю зависимость с официальных сайтов, также попробовал недействительный кеш и перезапустил, но это не сработало.

Зависимости файла Gradle на уровне моего модуля

 dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
        implementation 'androidx.appcompat:appcompat:1.0.0'
        implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'androidx.test:runner:1.1.0'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'

        def room_version = "2.2.0-alpha01" // 2.1.0 for latest stable version

        implementation "androidx.room:room-runtime:$room_version"
        annotationProcessor "androidx.room:room-compiler:$room_version" // For Kotlin use kapt instead of annotationProcessor

        // optional - Kotlin Extensions and Coroutines support for Room
        implementation "androidx.room:room-ktx:$room_version"

        // optional - RxJava support for Room
        implementation "androidx.room:room-rxjava2:$room_version"

        // optional - Guava support for Room, including Optional and ListenableFuture
        implementation "androidx.room:room-guava:$room_version"

        // Test helpers
        testImplementation "androidx.room:room-testing:$room_version"



        def lifecycle_version = "2.0.0"

        // ViewModel and LiveData
        implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
        // alternatively - just ViewModel
        implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version" // For Kotlin use lifecycle-viewmodel-ktx
        // alternatively - just LiveData
        implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"
        // alternatively - Lifecycles only (no ViewModel or LiveData). Some UI
        //     AndroidX libraries use this lightweight import for Lifecycle
        implementation "androidx.lifecycle:lifecycle-runtime:$lifecycle_version"

        annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycle_version" // For Kotlin use kapt instead of annotationProcessor
        // alternately - if using Java8, use the following instead of lifecycle-compiler
        implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"

        // optional - ReactiveStreams support for LiveData
        implementation "androidx.lifecycle:lifecycle-reactivestreams:$lifecycle_version" // For Kotlin use lifecycle-reactivestreams-ktx

        // optional - Test helpers for LiveData
        testImplementation "androidx.arch.core:core-testing:$lifecycle_version"




    }

person BRUCE    schedule 03.08.2019    source источник


Ответы (2)


Согласно примечаниям к выпуску жизненного цикла, первая версия из lifecycle-viewmodel-ktx (правильный артефакт для расширений Kotlin, связанных с ViewModel), который содержит viewModelScope, равен 2.1.0-alpha01. Поэтому вам следует обновиться до последней версии: либо 2.1.0-rc01, либо 2.2.0-alpha02, обе из которых включают этот API.

person ianhanniballake    schedule 03.08.2019

Правильная зависимость для ViewModel KTX должна быть androidx.lifecycle:lifecycle-viewmodel-ktx:$version

person Hussain    schedule 03.08.2019