J'utilise la démo de dagger2 par https://medium.com/@iammert/new-Android-injector-with-dagger-2-part-1-8baa60152abe . J'ai ajouté SharedPreferences à mon 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);
}
}
J'injecte SharedPreferences dans MainActivity. Après avoir reconstruit le projet, j'obtiens une erreur
Si je supprime l'annotation @Singleton de providesSharedPreferences, le projet se reconstruit correctement. Pourquoi l'annotation @Singleton by providesSharedPreferences pose-t-elle problème ?