【发布时间】:2020-11-03 17:42:57
【问题描述】:
我正在关注有关 LiveData 和 ViewModel 的旧教程。这些是链接。
- [https://www.youtube.com/watch?v=d7UxPYxgBoA][1]
- [https://resocoder.com/2018/09/07/mvvm-on-android-crash-course-kotlin-android-architecture-components/]
在启动 FakeDatabase 类并获取它的变量时,我在 InjectUtil.kt 类中遇到错误。我正在学习教程,但不知道为什么会得到它。
//InjectUtil Object
package dk.humma.livedata_viewmodel.utilities
import dk.humma.livedata_viewmodel.data.FakeDataBase
import dk.humma.livedata_viewmodel.data.QuotesRepository
import dk.humma.livedata_viewmodel.ui.quotes.QuotesViewModelFactory
// Finally a singleton which doesn't need anything passed to the constructor
object InjectorUtils {
// This will be called from QuotesActivity
fun provideQuotesViewModelFactory(): QuotesViewModelFactory {
// The whole dependency tree is constructed right here, in one place
val quoteRepository = QuotesRepository.getInstance(FakeDataBase.getInstance().quoteDao)
//Getting error while trying to get quoteDao variable
// Not accessing quoteDao
return QuotesViewModelFactory(quoteRepository)
}
}
//FakeDataBase class
package dk.humma.livedata_viewmodel.data
class FakeDataBase private constructor(){
var quoteDao = DataTable()
private set
companion object {
@Volatile private var instance : FakeDataBase? = null
fun getInstance() {
instance?: synchronized(this){
instance?: FakeDataBase().also { instance = it }
}
}
}
}
有人知道吗?非常感谢。
【问题讨论】:
-
是编译错误还是运行时错误?如果是运行时错误/异常,请发布整个堆栈跟踪。
-
请发布错误以解决问题。
-
这里没有访问 quoteDao 变量。 val quoteRepository = QuotesRepository.getInstance(FakeDataBase.getInstance().quoteDao) //我没有得到quoteDao。我只是写在这里,但在 IDE 中它说,未解决的参考:quoteDao
标签: android kotlin android-livedata android-viewmodel android-mvvm