我想在我的应用程序中尝试 Hilt DI
我完成了将 Hilt 添加到我的应用程序的所有步骤,但我的问题是 hilt 在 My BaseFragment 中显示错误说:
错误:预期的 topLevelClass = BaseFragment<T, D>.class ^error: [Hilt]
BaseFragment 很简单:
@AndroidEntryPoint
abstract class BaseFragment<T : ViewModel,D : ViewDataBinding>() : Fragment() {
@Inject
lateinit var viewModel: T by viewModels()
}
对于 viewModel by viewModels() not working 显示错误
不能使用“T”作为具体类型参数。改用一个类。'Lazy' 类型没有方法 'setValue(BaseFragment<T, D>, KProperty<*>, T)',因此它不能作为 var(读写属性)的委托。**
所以我像在 Dagger 中使用的那样使用 Factory,它可以工作,但仍然是我的问题
基本片段
感谢您帮助我并提前感谢
编辑:在 github 上打开 这个问题,他们说这是一个错误,他们将禁止 @AndroidEntryPoint 用于具有类型参数的基类 –</p>