【发布时间】:2021-07-03 00:05:47
【问题描述】:
我不断收到此错误:
公共最终类 MainViewModel 扩展 androidx.lifecycle.ViewModel { ^ @HiltViewModel 注解的类应该包含一个 @Inject 注解的构造函数。 [Hilt] 处理未完成。有关详细信息,请参阅上面的错误。
这是我的 MainViewModel:
@HiltViewModel
class MainViewModel @Inject constructor(
repository: DefaultRepository
) : ViewModel() {
val items = repository.getItems().asLiveData()
}
【问题讨论】:
-
Run with --stacktrace尝试获取更多可能有帮助的堆栈跟踪,但您共享的详细信息没有帮助,因为您的viewmodel是正确的,可能还有其他一些问题。 -
这听起来可能很奇怪,但我有一个名为
<domain>.<app_name>.data.default的包名,其中包含DefautRepository。包名中的这个default导致了这个问题。我重命名了包,现在一切正常。 -
多么有趣。可能与 Java 关键字冲突!
-
您是否尝试在视图模型中注入任何变量?在这种情况下,只需删除它们并将它们添加到构造函数中,这应该可以解决您的问题
-
与@TylerTurnbull 和 Atick Faisal 的问题相同,我在包名中有 new,重命名它解决了问题
标签: android dagger-hilt