Ich versuche, die Anwendung Context
in 2 andere Objekte, eine AuthManager
und eine ApiClient
zu injizieren.Dolch 2 - Warum ist das ein Abhängigkeitszyklus?
Beide hängen von diesem Zusammenhang ab, und die ApiClient
hängt von der AuthManager
ab. Warum ist das ein Abhängigkeitszyklus, wenn Context
keinen Bezug zu den anderen 2 hat? Kann das gelöst werden?
EDIT: hier ist ein Code
@Module
public class AppModule {
private final Application application;
public AppModule(Application application) {
this.application = application;
}
@Provides @Singleton
Context provideApplicationContext() {
return this.application;
}
}
@Module
public class NetworkModule {
@Provides @Singleton
public AuthManager providesAuthManager(AuthManager manager) {
return manager;
}
@Provides @Singleton
public ApiClient providesApiClient(ApiClientFactory factory) {
return factory.create();
}
}
@Singleton
@Component(modules = {AppModule.class, NetworkModule.class})
public interface ApplicationComponent {
void inject(BaseActivity activity);
// Exported for child-components
Context context();
ApiClient apiClient();
AuthManager authManager();
}
Es hilft, Fehlermeldungen zu der Frage hinzuzufügen. In diesem Fall haben Sie die Fehlermeldung falsch interpretiert, was es für uns schwieriger macht zu helfen :) – nhaarman
Ich sehe. Es scheint, dass ich das Beispiel der Kaffeemaschine falsch verstanden habe, als ich den "AuthManager" als lokalen Parameter aufstellte, würde der Dolch automatisch injizieren. Scheint als wäre der richtige Weg, den 'Kontext' als lokalen Parameter zu setzen. Danke :) –
Diese Antwort veranlasste mich, eine Methode zu überprüfen und speicherte mir Stunden Aufwand, etwas durch einen einfachen Tippfehler aufzuspüren. Vielen Dank! – user3265561