无法使我的第一个Kotlin Coroutine函数工作



我正在努力让我的第一个Coroutine函数工作!我有一个名为GetContacts的阻止功能,它可以获取设备联系人。我想用这个查询的结果更新Livedata。这个查询本身运行良好,但我似乎无法让它在Coroutine中运行。

这是我的代码

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'}

我错过了什么?感谢您的帮助!

看起来这是Kotlin Coroutines库1.3.2中的一个问题。看看这个问题,作为一个解决方案,请尝试将您的android coroutine库降级到1.3.0版本,就像@ispbox在这条评论中所说的那样。

最新更新