Caused by: java.lang.IllegalArgumentException: No injector factory bound for Class<com.ckw.zfsoft.ckwapparchitecture.modules.firstmodule.HeartFragment>
at dagger.android.DispatchingAndroidInjector.inject(DispatchingAndroidInjector.java:106)
at dagger.android.support.AndroidSupportInjection.inject(AndroidSupportInjection.java:71)
at dagger.android.support.DaggerFragment.onAttach(DaggerFragment.java:38)
..............................................
这里记录一个bug,问题发生在我使用Dagger2的时候发生的。我使用的Dagger2是模仿谷歌官方todo Demo写的,
这里出现的原因是我的Fragment没有在相应的ActivityModule中写相应的代码:
@FragmentScoped
@ContributesAndroidInjector
abstract HeartFragment heartFragment();
如果没有写这段代码,在相应的Activity中使用这个Fragment就会报错
还有一种情况就是,如果这个activity没有使用fragment,如果没有相应的注入代码也会报错,解决方案:
创建一个相应的空的module,同时在全局的activityBindingModule中将相应的activity加入就好了