簡體   English   中英

Android Dagger2 2.11無范圍的Appcomponent參考范圍綁定

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM