[英]Android Dagger2 2.11 unscoped Appcomponent reference scoped bindings
我通過https://medium.com/@iammert/new-android-injector-with-dagger-2-part-1-8baa60152abe使用dagger2演示。 我已將SharedPreferences添加到我的AppModule.java中
@Module(subcomponents = {
MainActivityComponent.class,
DetailActivityComponent.class,
Detail2ActivityComponent.class})
public class AppModule {
@Provides
@Singleton
Context provideContext(Application application) {
return application;
}
@Provides
@Singleton //if i remove dagger works right
SharedPreferences providesSharedPreferences(Application application) {
return PreferenceManager.getDefaultSharedPreferences(application);
}
}
我在MainActivity中注入了SharedPreferences。 重建項目后,我得到錯誤
如果我通過providersSharedPreferences刪除注釋@Singleton,則項目重建權。 為什么providersSharedPreferences會出現問題@Singleton注釋?
您需要將@Singleton添加到AppComponent類中:
@Singleton // <---- Add this line
@Component(modules = {
AndroidInjectionModule.class,
AppModule.class,
ActivityBuilder.class})
public interface AppComponent {
@Component.Builder
interface Builder {
@BindsInstance Builder application(Application application);
AppComponent build();
}
void inject(AndroidSampleApp app);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.