Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我需要Hassandroidinjection来注入一个内部片段?_Java_Android_Kotlin_Dagger 2 - Fatal编程技术网

Java 为什么我需要Hassandroidinjection来注入一个内部片段?

Java 为什么我需要Hassandroidinjection来注入一个内部片段?,java,android,kotlin,dagger-2,Java,Android,Kotlin,Dagger 2,我有一个名为Activity1的活动,然后里面有一个Fragment1都有@ContributeAndroidInjection,如果我的活动2想要注入Fragment1 为什么我需要实现hasAndroidJector并执行 @Inject lateinit var androidInjector: DispatchingAndroidInjector<Any> override fun androidInjector(): AndroidInjector<Any> =

我有一个名为
Activity1
活动,然后里面有一个
Fragment1
都有
@ContributeAndroidInjection
,如果我的
活动2
想要注入
Fragment1

为什么我需要实现
hasAndroidJector
并执行

@Inject lateinit var androidInjector: DispatchingAndroidInjector<Any>
override fun androidInjector(): AndroidInjector<Any> = androidInjector
不管怎样,它都可以工作,因为我已经添加了一个模块,该模块在
@ContributesAndroidInjector
中包含该片段。。。
是因为当我想向一个内部
片段
提供注入时,我需要
hasAndroidInjector

你的方法
bindMyActivity2
不是抽象的,这是打字错误吗?不,我有像
@模块接口功能模块{@ContributesAndroidInjector fun provideFragment():MyFragment}
我可能错了,但根据官方的dagger doc
@ContributesAndroidInjector
必须应用于抽象方法我已经尝试过了。。。但是没有。我的意思是,我想在我的新活动中使用一个片段,在将其用于活动1之前,该片段已添加为
@contributeandroidjector
,因此我需要演示者、repo等。。。但如果把它作为一个模块来添加,它已经有魔力了。。。我不知道为什么我需要额外的工具来进行hasAndroidInjection…@Steyrix知道吗?
@ContributesAndroidInjector(
 modules = [ FragmentProvider::class]
)
fun bindMyActivity2: Activity2