无法使用我的第一个Kotlin协程功能

问题描述 投票:0回答:1

我正在努力使我的第一个协程功能正常工作!我有一个名为GetContacts的阻止函数,该函数可获取设备联系人。我想使用此查询的结果更新Livedata。此查询本身可以正常工作,但我似乎无法使其在协同程序中正常工作。

这是我的代码

   val contactsList: MutableLiveData<List<ContactModel>> = MutableLiveData()

    fun getContactList(){
        viewModelScope.launch() {
            var contacts: List<ContactModel>? = null
            withContext(Dispatchers.IO){
                contacts = getListOfContactsOnDeviceAsync()
            }
            contactsList.value = contacts
        }
    }

    private fun getListOfContactsOnDeviceAsync(): List<ContactModel> =  GetContactHelper.getContacts()

[当我明显添加了Android Coroutine依赖项时,我收到错误消息“缺少具有主调度器的模块。添加提供主调度器的依赖项,例如'kotlinx-coroutines-android'”。]

dependencies {
    implementation 'com.android.support:multidex:1.0.3'
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.2'}

我想念的是什么?任何帮助表示赞赏!

我正在努力使我的第一个协程功能正常工作!我有一个名为GetContacts的阻止函数,该函数可获取设备联系人。我想使用此查询的结果更新Livedata。 ...

android kotlin android-livedata kotlin-coroutines
1个回答
0
投票

[似乎是Kotlin协程库1.3.2中的一个问题,请看一下此issue,因此,作为解决方案,请尝试将Android协程库降级为1.3.0版,如本comment中所述。

© www.soinside.com 2019 - 2024. All rights reserved.