为什么 viewmodelfactory 在我的项目中无法识别?

Why viewmodelfactory not recognizing in my project?

我正在使用 ViewModel 开发一个 android 应用程序,但我在我的项目下面收到以下错误viewmodelfactory error。

低于我的 ViewModel 实现

import android.app.Activity
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.ViewModelStoreOwner

fun <T : ViewModel> Activity.obtainViewModel(viewModelClass: Class<T>): T {
    val todoRepository = (this.application as TodoApplication).todoRepository
    return ViewModelProvider(this as ViewModelStoreOwner, ViewModelFactory(todoRepository)).get(
        viewModelClass
    )

}

我想知道我哪里出错了。

低于我的尝试

import android.app.Activity
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.ViewModelStoreOwner

fun <T : ViewModel> Activity.obtainViewModel(viewModelClass: Class<T>): T {
    val todoRepository = (this.application as TodoApplication).todoRepository
    return ViewModelProvider(this as ViewModelStoreOwner, ViewModelProvider.Factory.get(todoRepository,
        viewModelClass
    ))

}

并收到以下错误类型不匹配:推断类型为 ViewModelProvider 但预期为 T

如果您查看 documentation ViewModelProvider 构造函数有两个参数。第二个是ViewModelProvider.Factory。将 ViewModelFactory(todoRepository) 替换为 ViewModelProvider.Factory

的实例
fun <T : ViewModel> AppCompatActivity.obtainViewModel(viewModelClass: Class<T>): T {
        return ViewModelProvider(this).get(viewModelClass)
    }