In meinem Modul erzeugt wird, in meiner Basis AnwendungsklasseDagger 2 Komponente nicht
component = DaggerCompClassComponent.builder()
.classModule(new ModuleClass()).build();
es kann nicht DaggerCompClassComponent finden.
Ich habe auf Modul build.gradle
apply plugin: 'com.neenbedankt.android-apt'
.........................
apt 'com.google.dagger:dagger-compiler:2.8'
compile 'com.google.dagger:dagger:2.8'
provided 'javax.annotation:jsr250-api:1.0'
und im Projekt build.gradle,
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
Ich habe getan, build/Wiederaufbau/clean/Restart-Projekt. Ich habe eine Component-Klasse, in die ich Objekte injiziere, und eine ModuleClass, in der ich zu injizierende Objekte stelle.
Was kann die Ursache dafür sein, dass Dolch Component nicht generiert wird? Klasse?
EDIT:
Das ist mein ModuleClass, adnotated mit @Module:
@Provides
@Singleton
public Interceptor provideInterceptor() {
return new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request.Builder builder = chain.request().newBuilder();
builder.addHeader("AppName-Android", BuildConfig.VERSION_NAME + "-" + BuildConfig.VERSION_CODE)
.addHeader("Content-Type", "application/json");
return chain.proceed(builder.build());
}
};
}
@Provides
@Singleton
OkHttpClient provideOkHttpClient(Interceptor interceptor) {
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.interceptors().add(interceptor);
return builder.build();
}
@Provides
@Singleton
Retrofit provideRetrofit(OkHttpClient client) {
return new Retrofit.Builder()
.baseUrl(BaseApplication.getRes().getString(R.string.api_base_url))
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
}
@Provides
@Singleton
WebServiceCall provideWebService(Retrofit retrofit) {
return retrofit.create(WebServiceCall.class);
}
Und das ist meine Komponentenklasse:
@Component(modules = ModuleClass.class)
@Singleton
public interface ComponentClass {
void inject(Interceptor o);
void inject(OkHttpClient o);
void inject(Retrofit o);
void inject(WebServiceCall o);
}
Fügen Sie Ihre Komponenten und Module zur Frage –
Die 'void inject (...)' Methoden sind alle falsch, entfernen Sie alle 4 von ihnen – EpicPandaForce
@EpicPandaForce, ich habe gelöscht - keinen Effekt! – hackingforgirls