我需要创建一个应用程序来处理数据库。但是当创建模型时,我得到一个错误:Cannot create an instance of class com.example.carexpenses.viewmodels.CarViewModel
错误是由应用程序使用的行给出的。如何修复这个错误?
我的ViewModelClass
class CarViewModel(application: Application) : AndroidViewModel(application) {
private val carDao : CarDao
private val allCars: LiveData<List<Car>>
init{
val db = MainDB.getDatabase(application)
carDao = db.carDao()
allCars = carDao.getAllCars()
}
fun getAllCars(): LiveData<List<Car>> {
return allCars
}
fun insertCar(car: Car) {
viewModelScope.launch(Dispatchers.IO) {
carDao.insertCar(car)
}
}
}
字符串
我的数据库类:
@Database(entities = \[Car::class\], version = 1)
abstract class MainDB: RoomDatabase() {
abstract fun carDao(): CarDao
companion object {
@Volatile
private var INSTANCE: MainDB? = null
fun getDatabase(context: Context): MainDB {
return INSTANCE ?: synchronized(this) {
val instance = Room.databaseBuilder(
context.applicationContext,
MainDB::class.java,
"main.db"
).build()
INSTANCE = instance
instance
}
}
}
}
型
在Fragment中创建ViewModel:
第一个月
我找不到解决方案,一切都在不使用数据库的情况下工作,当它连接时,一切都停止工作
1条答案
按热度按时间i2byvkas1#
问题并不在于ViewModel。一切都不起作用是因为实现:实现'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2'
删除后错误消失了,万岁