【发布时间】:2020-08-11 16:32:38
【问题描述】:
我想在我的应用中试用 Hilt DI
我完成了将 Hilt 添加到我的应用程序的所有步骤,但我的问题是 hilt 在 My BaseFragment 中显示错误 说:
错误:预期
topLevelClass = BaseFragment
BaseFragment 很简单:
@AndroidEntryPoint
abstract class BaseFragment<T : ViewModel,D : ViewDataBinding>() : Fragment() {
@Inject
lateinit var viewModel: T by viewModels()
}
对于 viewModel by viewModels() 不工作显示错误
不能使用“T”作为具体类型参数。改用一个类。类型 'Lazy' 没有方法 'setValue(BaseFragment
, KProperty, T)' 因此它不能作为 var (read-write 属性)。**
所以我像在 Dagger 中使用的那样使用 Factory,它可以工作,但仍然是我的问题
基础片段
感谢您帮助我并提前感谢
编辑: 在 github 上打开这个 issues,他们说这是一个错误,他们将禁止 @AndroidEntryPoint 用于具有类型参数的基类 –
【问题讨论】:
标签: android kotlin dagger-2 dagger-hilt