Dagger Hilt Android 给出错误:DefaultViewModelFactories 类中的方法 getActivityFactory 无法应用于给定类型

Kis*_*nki 3 android dependency-injection dagger-hilt

我正在开发一个项目,其中实现了 Dagger Hilt + Retrofit + Coroutine。

但在更新了 dagger hilt 的依赖项后,该项目无法运行。

对于使用依赖注入实现 Dagger 和 Viewmodel 的活动和片段,我收到此错误。在依赖项更新之前,它运行良好。

这是相同的屏幕截图:

在此输入图像描述

这是 Dagger 创建的类,但有错误:

在此输入图像描述

如果有人遇到过同样的问题。我不知道我做错了什么。我已经遵循了这个教程。本教程对我来说也工作得很好,但是在更新依赖项后我收到了上述错误。

Kis*_*nki 5

好的,我知道问题出在哪里了。

问题在 Dagger Hilt 的官方文档

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

在此输入图像描述

问题出在文档的代码中。他们为什么不更新官方文档真是令人沮丧!随它去.......

我们必须改变

@HiltViewModel
class MyViewModel @Inject constructor(
    private val mainRepository: MainRepository
) : ViewModel() {
Run Code Online (Sandbox Code Playgroud)

@HiltViewModel
class MyViewModel @Inject constructor(
    private val mainRepository: MainRepository
) : ViewModel(), LifecycleObserver {
Run Code Online (Sandbox Code Playgroud)

他们错过了LifecycleObserver,因此,我面临着错误。

不仅如此,

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

在应用程序级别 Gradle 中:

implementation "com.google.dagger:hilt-android:2.35.1"
kapt "com.google.dagger:hilt-android-compiler:2.35.1"
Run Code Online (Sandbox Code Playgroud)

在项目级别 Gradle 中:

classpath "com.google.dagger:hilt-android-gradle-plugin:2.35.1"
Run Code Online (Sandbox Code Playgroud)