Ich habe 2 Komponenten: die AppComponent
und die ApiComponent
. Ich würde gerne die Abhängigkeiten verwenden, die von der AppComponent
in der ApiComponent
und in den Objekten zur Verfügung gestellt werden, auf die die ApiComponent
injiziert wird. So sehe ich die ApiComponent
als Unterkomponente der AppComponent
. Ich habe die AppComponent
als Abhängigkeit in den ApiComponent
erklärt mit der dependecies
Richtlinie:Dolch 2 Sub-Komponente Injektion Fehler
@ApiScope
@Component(dependencies = { AppComponent.class},
modules = { ApiModule.class })
public interface ApiComponent {
void inject(Application application);
void inject(IntentService1 service1);
SampleApi sampleApi();
}
Hier mein AppComponent ist:
@Singleton
@Component (modules = { AppModule.class })
public interface AppComponent {
void (Class2 class2);
Bus bus();
SharedPreferences sharedPreferences();
SampleApplication sampleApplication();
}
Der relevante Teil meiner ApiModule wie folgt aussieht:
@Module
public final class ApiModule {
@Provides
@ApiScope
SampleApi provideSampleApi(Retrofit retrofit) {
return retrofit.create(SampleApi.class);;
}
}
Ich trigne die Injektion in onCreate() Methode meines IntentService1:
@Inject SampleApi sampleApi;
@Override
public void onCreate() {
SampleApplication.get().getApiComponent().inject(this);
}
Aber ich erhalte den folgenden Compiler-Fehler:
SampleApi cannot be provided without an @Provides or @Produce-annotated method
Hat jemand eine Ahnung, was los ist? Ich schätze Ihre Hilfe.
Gerade gelöst mein Nicht-Subkomponenten-Problem .... je mehr ich Dolch 2 benutze desto weniger Magie finde ich. Es ist nur Java ... einige davon generiert, einige davon nicht! – OceanLife