Java Android Dagger2.11非作用域Appcomponent引用作用域绑定

Java Android Dagger2.11非作用域Appcomponent引用作用域绑定,java,android,dagger-2,Java,Android,Dagger 2,我使用dagger2演示。我已将SharedReference添加到我的AppModule.java中 @Module(subcomponents = { MainActivityComponent.class, DetailActivityComponent.class, Detail2ActivityComponent.class}) public class AppModule { @Provides @Singleton Context provideConte

我使用dagger2演示。我已将SharedReference添加到我的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中注入SharedReference。重建项目后,我得到一个错误

如果我通过ProvideSharedPreferences删除注释@Singleton,则项目重建权限为。
为什么ProvideSharedPreferences会出现@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);
    }

@Singleton//Greate!你保证了我的时间。很难描述我的匕首2.11绝望。哦…是的,很难实现匕首2也是同样的问题,很难描述我的匕首2.11绝望,哦。。。