【发布时间】:2017-09-26 10:44:41
【问题描述】:
如何使用 Dagger2 在 Fragment 中注入 Presenter
我已经写了下面的代码
@Module
public abstract class ActivityBuilder {
@ContributesAndroidInjector(modules = { DetailCastActivityModule.class, FragmentDependencyProvider.class })
abstract DetailCastActivity bindDetailCastActivity();
}
@Module
public abstract class FragmentDependencyProvider {
@ContributesAndroidInjector(modules = CastInfoFragmentModule.class)
abstract CastInfoFragment provideCastInfoFragmentFactory();
}
@Module
public class CastInfoFragmentModule {
@Provides
CastInfoMvpPresenter<CastInfoMvpView> provideCastInfoMvpPresenter(CastInfoPresenter<CastInfoMvpView> presenter) {
return presenter;
}
}
但即使我已经编写了提供方法,我仍然会遇到错误
Error:(24, :sunglasses: error: [dagger.android.AndroidInjector.inject(T)] com.app.nmot.ui.castdetail.info.CastInfoPresenter cannot be provided without an @Provides- or @Produces-annotated method.
com.app.nmot.ui.castdetail.info.CastInfoPresenter is injected at
com.app.nmot.ui.castdetail.info.CastInfoFragment.presenter
com.app.nmot.ui.castdetail.info.CastInfoFragment is injected at
dagger.android.AndroidInjector.inject(arg0)
评论中提到的答案并没有解决我的问题。 我已经检查了所有的注释,我正在使用 Dagger2 提供的新的 android 注入器
【问题讨论】:
-
此解决方案不适合您? stackoverflow.com/questions/36838898/…
-
@MaximeJallu - 不,我已经检查了所有注释,我正在使用 Dagger2 提供的新的 android 注入器
标签: android android-fragments dependency-injection dagger-2 dagger