Android 尝试进行接口类型的成员注入时,匕首2 NPE
我对成员注入接口类型有问题 下面是一个例子: 我有一个接口,我们称之为BookActivityAndroid 尝试进行接口类型的成员注入时,匕首2 NPE,android,dagger-2,Android,Dagger 2,我对成员注入接口类型有问题 下面是一个例子: 我有一个接口,我们称之为BookActivity interface BookActivity {} 它是一个简单的标记接口,什么都不做 我有两个实施方案: BookNewActivity: Activity, BookActivity { @Inject someField: SomeField; override fonCreate(savedInstanceState:Bundle?) { activity
interface BookActivity {}
它是一个简单的标记接口,什么都不做
我有两个实施方案:
BookNewActivity: Activity, BookActivity {
@Inject someField: SomeField;
override fonCreate(savedInstanceState:Bundle?) {
activityComponent.inject(this)
}
}
BookOldActivity: Activity, BookActivity {
@Inject someField: SomeField;
override fonCreate(savedInstanceState:Bundle?) {
activityComponent.inject(this)
}
}
interface ActivityComponent {
fun inject(BookActivity)
}
当我试图访问someField时,我得到了NPE,因为dagger并没有在我的类中注入someField。
如何解决此问题?不确定,但这可能是dagger理解父接口的问题。您可以尝试为每个活动使用2个注入方法
如果一个接口可以有属性,您可以在那里拥有它,但这是不可能的:(不确定,但这可能是dagger理解父接口的问题。您可以尝试为每个活动使用两种注入方法
如果一个接口可以有属性,你可以把它放在那里,但这是不可能的:(你能添加一个堆栈跟踪吗。它发生在运行时吗?你是如何调用inject的(举个例子)?@Ruokki是的。它发生在运行时。我刚刚更新了一个问题,说明我如何调用Injector和堆栈跟踪,以知道NPE在哪里:)你能添加堆栈跟踪吗?它是在运行时发生的吗?你是如何调用Injection的(显示一个示例)?@Ruokki是的。它是在运行时发生的。我刚刚更新了一个问题,说明我如何调用Injector和堆栈跟踪,以了解NPE的位置:)