ho questo componente:Dagger2: errore quando due componenti ha stesso inietti metodo firma
@Singleton
@Component(modules = OauthModule.class)
public interface OauthComponent {
void inject(LoginActivity a);
}
e il modulo:
@Module
public class OauthModule {
@Provides
@Singleton
Oauth2Service provideOauth2Service() {
return new Oauth2StaticService();
}
}
e questo un altro componente:
@Singleton
@Component(modules = LoggedUserModule.class)
public interface LoggedUserComponent {
void inject(LoginActivity a);
}
e Ho ricevuto questo errore:
Error:(15, 10) error: Oauth2Service cannot be provided without an @Provides- or @Produces-annotated method.
Se cambio parametro del metodo inject s' il LoggedUserComponent
essere un altro Activity
, dicono AnotherActivity
come questo:
@Singleton
@Component(modules = LoggedUserModule.class)
public interface LoggedUserComponent {
void inject(AnotherActivity a);
}
compilazione è ok. Perché? Non posso avere due componenti con la stessa firma iniettata?
Sto cercando di capire come funziona Dagger
così ogni aiuto sarà apprezzato. Grazie.
Cosa succede se il mio OAuthModule è singleton? non potrò mai iniettare? – sector11
Non sono sicuro di seguire quello che stai chiedendo – ootinii