大四狗写毕设,遇到一个关于dagger2中 @scope的使用问题:
Dagger2使用中添加自定义Scope@AcvityScope 后报错
AppComponent (unscoped) may not reference scoped bindings:
AppComponent 及 相关module如下:
@Component(modules = {
AndroidSupportInjectionModule.class,
NeedInjectModules.class,
DisposableModule.class
})
public interface AppComponent extends AndroidInjector<MyApplication> {
@Component.Builder
interface Builder {
@BindsInstance
Builder application(Application application);
AppComponent build();
}
}
@Module
public abstract class NeedInjectModules {
// @ActivityScope
@ContributesAndroidInjector
abstract MainActivity injectMainActivity();
}
@Module(includes = ApiModule.class)
public abstract class DisposableModule {
// @ActivityScope
@Binds
abstract BasePresenter bindDisposeblePresneter(DisposablePresenter disposablePresenter);
}
@Module(includes = NetModule.class)
public class ApiModule {
// @ActivityScope
@Provides
static ApiService provideApi(Retrofit retrofit) {
return retrofit.create(ApiService.class);
}
}
@Module
public class NetModule {
// @ActivityScope
@Provides
Retrofit provideRetrofit() {
return NetMgr.getInstance().getDefaultRetrofit();
}
}
不加@ActivityScope完美运行,添加之后就出错. 求大佬们帮忙看看!!!
把@ActivityScope放在 AppComponent 的上面
@ActivityScope
@Module
public class AppComponent {