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

Android 为什么viewmodelfactory在我的项目中无法识别?,android,kotlin,android-viewmodel,Android,Kotlin,Android Viewmodel,我正在使用ViewModel开发一个android应用程序,但在我的项目下面出现了以下错误 下面是我的ViewModel实现 import android.app.Activity import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelStoreOwner fun <T : ViewModel> Activi

我正在使用ViewModel开发一个android应用程序,但在我的项目下面出现了以下错误

下面是我的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
    )

}
导入android.app.Activity
导入androidx.lifecycle.ViewModel
导入androidx.lifecycle.ViewModelProvider
导入androidx.lifecycle.ViewModelStoreOwner
有趣的活动。获取ViewModel(viewModelClass:Class):T{
val todoRepository=(this.application作为todoRepository)。todoRepository
返回ViewModelProvider(作为ViewModelStoreOwner、ViewModelFactory(todoRepository))。获取(
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
    ))

}
导入android.app.Activity
导入androidx.lifecycle.ViewModel
导入androidx.lifecycle.ViewModelProvider
导入androidx.lifecycle.ViewModelStoreOwner
有趣的活动。获取ViewModel(viewModelClass:Class):T{
val todoRepository=(this.application作为todoRepository)。todoRepository
返回ViewModelProvider(以ViewModelStoreOwner、ViewModelProvider.Factory.get(todoRepository、,
viewModelClass
))
}
获取以下错误类型不匹配:推断类型为ViewModelProvider,但如果查看
ViewModelProvider
构造函数,则应为T。第二个是
ViewModelProvider.Factory
。将
ViewModelFactory(todoRepository)
替换为
ViewModelProvider.Factory的实例

fun-AppCompatActivity.ActainViewModel(viewModelClass:Class):T{
返回ViewModelProvider(this).get(viewModelClass)
}

我发现以下错误类型不匹配:推断类型为ViewModelProvider,但T为expected@NicollaGallazzi你能解释一下你所说的编码吗sample@HackerOne请剪切并粘贴您的代码和问题中的错误