我需要创建一个应用程序来使用数据库。但是在创建模型时出现错误:无法创建类 com.example.carexpenses.viewmodels.CarViewModel 的实例
错误由使用应用程序的行给出。如何解决这个问题?
我的ViewModel类
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:
carViewModel = ViewModelProvider(this)[CarViewModel::class.java]
我找不到解决方案,一切都可以在不使用数据库的情况下工作,当连接时,一切都停止工作
问题不是因为 ViewModel。由于实现,一切都不起作用:实现'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2'
删除后错误消失了,万岁