无法创建 class 的实例 - ViewModel kotlin

Cannot create an instance of class - ViewModel kotlin

我一直在练习 Kotlin mvvm 并在创建视图模型时遇到错误,我看到很多堆栈溢出解决方案,但找不到解决方案

Cannot create an instance of class - View Model

这是我的模型class

public class MainViewModel(application: Application,
                           
                          
) :  AndroidViewModel(application) {


    fun first(): LiveData<Boolean> {
        return database
                .locationDao()
                .getLocationFlow()
                .flowOn(Dispatchers.IO)
                .map {

                    when {
                        it.isEmpty() -> {
                            true
                        }
                        else -> false
                    }
                }.asLiveData()
    }
}

主要活动

class MainActivityK : AppCompatActivity() {

lateinit 变量 viewModel:MainViewModel

oncreate 方法

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        LocalUtil.setLocal(this)
        mainBinding = ActivityMainKBinding.inflate(layoutInflater)
        setContentView(mainBinding.root)
        viewModel=ViewModelProvider(this).get(MainViewModel::class.java)

谢谢。

您应该像这样获取 MainViewModel:

 viewModel = ViewModelProvider(this, ViewModelProvider.AndroidViewModelFactory.getInstance(this.getApplication())).get(MainViewModel::class.java)

而不是

viewModel=ViewModelProvider(this).get(MainViewModel::class.java)