android - 带有类型的 Dagger Hilt 抽象类
问题描述
大家好,我正在尝试使用 Dagger-Hilt,我想知道如何实现下面的代码?
@AndroidEntryPoint
abstract class BaseActivity <B : ViewDataBinding, VM : ViewModel> : IActivity<VM>, AppCompatActivity() {
@Inject
lateinit var someClass: SomeClass
}
Gradle 返回此错误:
BaseActivity_GeneratedInjector.java:10: error: <identifier> expected
topLevelClass = BaseActivity<B, VM>.class
^error: [Hilt]
class java.lang.NullPointerException: java.lang.NullPointerException
这是生成的 Java 类:
@OriginatingElement(
topLevelClass = BaseActivity<B, VM>.class
)
@GeneratedEntryPoint
@InstallIn(ActivityComponent.class)
@Generated("dagger.hilt.android.processor.internal.androidentrypoint.InjectorEntryPointGenerator")
public interface BaseActivity_GeneratedInjector {
void injectBaseActivity(BaseActivity baseActivity);
}
帮助将不胜感激。
解决方案
据我了解,这是 Hilt 内部的错误。
检查相关的github问题:https ://github.com/google/dagger/issues/2042
您可以通过@AndroidEntryPoint
从带参数的抽象类移动到不带类型参数的子类来解决此问题。
推荐阅读
- python - 在pymongo中的多个字段上分组
- json - 在 Swift / SwiftUI 中捕获 json 错误“错误的纬度和经度”
- sql - 我们可以在 SOAP Web 服务请求中传递动态值吗?
- github - GitHub 团队而不是用户的 GitHub PAT
- javascript - 动画 SVG 圆形边框像进度一样,但一种方式和另一种方式
- c# - SQL 中的右外连接和内连接 - 转换为 linq
- python - 如何使用 Python 从 Azure Devops 获取项目
- oracle - 将用户和组从 Oracle Internet Directory 迁移到 Microsoft Active Directory
- python - 如何将列表(其元素是数组)转换为 JSON 可序列化列表?
- swift - 并发队列上的 DispatchSourceTimer