Dagger Hilt Android gives Error : method getActivityFactory in class DefaultViewModelFactories cannot be applied to given types

Dagger Hilt Android gives Error : method getActivityFactory in class DefaultViewModelFactories cannot be applied to given types

我正在做一个项目,我已经实现了 Dagger Hilt + Retrofit + Coroutine。

但是在新更新了匕首柄的依赖项之后,该项目无法运行。

我在使用依赖注入实现 Dagger 和 Viewmodels 的活动和片段中收到此错误。在依赖更新之前,它工作正常。

这是相同的屏幕截图:

这是由 Dagger 创建的 class 并且有错误:

如果有人遇到过同样的问题。我不知道我做错了什么。 我已遵循 this 教程。本教程对我来说也很好用,但是更新依赖项后出现上述错误。

好的,我知道是什么问题了。

问题出在匕首柄的官方文档中here

请参阅下面该文档的屏幕截图。

问题出在文档的代码中。他们为什么不更新他们的官方文档真的很令人沮丧!!!顺其自然吧......

我们必须改变

来自

@HiltViewModel
class MyViewModel @Inject constructor(
    private val mainRepository: MainRepository
) : ViewModel() {

@HiltViewModel
class MyViewModel @Inject constructor(
    private val mainRepository: MainRepository
) : ViewModel(), LifecycleObserver {

他们错过了 LifecycleObserver,因此,我遇到了错误。

不仅如此,

您还应该注意,以下依赖项的版本也应该相同。

在应用级别 Gradle:

implementation "com.google.dagger:hilt-android:2.35.1"
kapt "com.google.dagger:hilt-android-compiler:2.35.1"

在项目级别 Gradle:

classpath "com.google.dagger:hilt-android-gradle-plugin:2.35.1"

项目级别和模块级别的依赖版本必须相同。