Ich habe ein Problem zu verstehen, warum der folgende Code nicht funktioniert.Probleme mit Singletons bei Verwendung von Komponentenabhängigkeiten
Ich habe folgende Projektstruktur:
@Component(modules = CCModule.class)
public interface CComponent {
XXX getXXX();
}
wo
@Module
public class CCModule {
@Provides @Singleton
public XXX provide XXX(){
return new XXX();
}
}
und
@Component(dependencies = CComponent.class, modules = AAModule.class)
public interface AComponent {
YYY getYYY();
}
wo
class YYY {
@Inject
public YYY(XXX xxx) {
...
}
}
ich initialisieren alles wie:
CComponent c_component = Dagger_CComponent.builder().cCModule(new CCModule()).build();
AComponent a_component = Dagger_AComponent.builder()
.cComponent(c_component)
.aAModule(new AAModule())
.build();
Sobald ich die folgende Fehlermeldung erhalten Kompilierung stattfindet:
Error:(11, 1) error: com.test.CComponent (unscoped) may not reference scoped bindings: @Provides @Singleton com.test.XXX com.test.CCModule.provideXXX()
Was denn ich bin mit dem Ziel ist eine Komponente Bindungen von anderen Komponenten erben zu haben, haben die gleiche Verweise auf Objekte (Singletons).
zu verwenden, nicht zulassen @ Alexander Vasiljev Getestet am letzten Schnappschuss. Funktioniert gut =). Ich habe meine Antwort ein wenig mit benutzerdefinierten AScope-Annotationen aktualisiert. Etwas stimmt nicht mit deinem Code. Zeig es. Übrigens reden wir auf Englisch, das ist keine russische Ressource. –
saubere lösung sir –