小编C. *_*arr的帖子

Dagger2:没有注射器工厂限制碎片

我正在尝试将我正在构建的项目转换为使用dagger-android API用于DI框架,但是当尝试使用@ContributesAnroidInjector注入片段时,我遇到了IllegalArgumentException的死胡同.

相关模块和组件包括在下面:

ApplicationComponent.java

@Singleton
@Component(modules = {AndroidSupportInjectionModule.class,
    ApplicationModule.class,
    ActivityBindingModule.class,
    DataManagerModule.class})
public interface ApplicationComponent extends AndroidInjector<MyApplication> {

DataManagerContract getDataManager();

void inject(MyApplication application);

@Component.Builder
interface Builder {

    @BindsInstance
    ApplicationComponent.Builder application(Application application);

    ApplicationComponent build();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的ActivityBindingModule.java:

@Module
public abstract class ActivityBindingModule {

    @ActivityScope
    @ContributesAndroidInjector(modules = MainActivityModule.class)
    abstract MainActivity bindMainActivity();

    @ActivityScope
    @ContributesAndroidInjector(modules = SplashActivityModule.class)
    abstract SplashActivity bindSplashActivity();

    @ActivityScope
    @ContributesAndroidInjector(modules = LoginActivityModule.class)
    abstract LoginActivity bindLoginActivity();
}
Run Code Online (Sandbox Code Playgroud)

MainActivityModule.java

@Module
public abstract class MainActivityModule {

    @ActivityScope
    @Binds
    abstract MainActivityContract.Presenter provideMainActivityPresenter(MainActivityPresenter presenter);

    @FragmentScope
    @ContributesAndroidInjector …
Run Code Online (Sandbox Code Playgroud)

java android dagger-2

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

dagger-2 ×1

java ×1