studio medium google compiler annotationprocessor android dependency-injection dagger dagger-2

medium - dagger android processor



Daga 2-¿Por qué es esto un ciclo de dependencia? (2)

Estoy tratando de inyectar el Context la aplicación en otros 2 objetos, un AuthManager y un ApiClient .

Ambos dependen de dicho contexto, y el ApiClient depende del AuthManager . ¿Por qué es esto un ciclo de dependencia, si Context no tiene una referencia a los otros 2? ¿Se puede resolver esto?

EDITAR: aquí hay un código

@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(); }


Elimine el método providesAuthManager @Inject y agregue @Inject en su AuthManager Constructor.


@Provides @Singleton public AuthManager providesAuthManager(AuthManager manager) { return manager; }

Su método provee AuthManager que proporciona un AuthManager depende de un AuthManager .

Ahí está tu ciclo :)