1

查看一些示例,我能够使用 Dagger 2.11 来处理活动和片段,但是,在使用 Retrofit + RxJava 创建用于调用 Web 服务的模块时,我没有取得任何进展。对不起,如果这是一个重复的问题,我在这里没有找到解决方案。

按照下面的我的应用程序代码:

应用程序.java

public class App extends Application implements HasActivityInjector {

    @Inject
    DispatchingAndroidInjector<Activity> activityDispatchingAndroidInjector;

    @Override
    public void onCreate() {
        super.onCreate();

        DaggerAppComponent.builder().create(this).inject(this);

        if (BuildConfig.DEBUG) {
            Timber.plant(new Timber.DebugTree());
        } else {
            Fabric.with(this, new Crashlytics());
            Timber.plant(new FirebaseCrashReportingTree());
        }
    }

    @Override
    public AndroidInjector<Activity> activityInjector() {
        return activityDispatchingAndroidInjector;
    }
}

应用组件.java

@Singleton
@Component(modules = {
        AppModule.class})
interface AppComponent extends AndroidInjector<App> {


    @Component.Builder
    abstract class Builder extends AndroidInjector.Builder<App> {
    }
}

应用模块.java

@Module(includes = {AndroidInjectionModule.class})
abstract class AppModule {

    @Binds
    @Singleton
    abstract Application application(App app);

    @PerActivity
    @ContributesAndroidInjector(modules = MainActivityModule.class)
    abstract MainActivity mainActivityInjector();
}
4

0 回答 0