Android MutableLiveData应为不可为空的值 private val\u users=MutableLiveData() val用户:LiveData get()=\u用户 fun getUsers(){ viewModelScope.launch{ _users.value=users() } } 挂起有趣的用户():列表{ 待办事项(“未实施”) }
我在Android MutableLiveData应为不可为空的值 private val\u users=MutableLiveData() val用户:LiveData get()=\u用户 fun getUsers(){ viewModelScope.launch{ _users.value=users() } } 挂起有趣的用户():列表{ 待办事项(“未实施”) },android,kotlin,viewmodel,android-livedata,kotlin-null-safety,Android,Kotlin,Viewmodel,Android Livedata,Kotlin Null Safety,我在\u users.value=users() 应为不可为空的值。检查信息: 此检查确保LiveData值在显式声明为不可为null时不为null 我使用的是生命周期版本2.3.1。问题似乎出在suspend function users()上。如果我删除挂起修饰符,它可以正常工作。只需使用private val\u users:MutableLiveData=MutableLiveData()而不是private val\u users=MutableLiveData()这些应该是等价的意思
\u users.value=users()
应为不可为空的值。检查信息:
此检查确保LiveData值在显式声明为不可为null时不为null
我使用的是生命周期版本
2.3.1
。问题似乎出在suspend function users()上。如果我删除挂起修饰符,它可以正常工作。只需使用private val\u users:MutableLiveData=MutableLiveData()
而不是private val\u users=MutableLiveData()这些应该是等价的意思。这似乎是一个Android Lint bug。你知道这是否在任何地方有文档记录或在AOSP bug tracker上有报告吗?不,我还没有找到任何文档,但我用它来消除错误。这很奇怪,而且\u users。postValue(users())
使它可以无误运行。
private val _users = MutableLiveData<List<User>>()
val users: LiveData<List<User>> get() = _users
fun getUsers() {
viewModelScope.launch {
_users.value = users()
}
}
suspend fun users(): List<User> {
TODO("Not implemented")
}