Dans mon module, dans ma classe d'application de base
component = DaggerCompClassComponent.builder()
.classModule(new ModuleClass()).build();
il ne trouve pas le composant DaggerCompClassComponent.
J'ai sur le module 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'
et dans le projet build.gradle,
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
J'ai fait un projet de construction / reconstruction / nettoyage / redémarrage. J'ai une classe Component où j'injecte des objets et une classe ModuleClass où je fournis des objets à injecter.
Quelle peut être la cause de la non génération de la classe Dagger Component .
EDITAR:
C'est ma ModuleClass, annotée avec @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);
}
Et voici ma classe de composants :
@Component(modules = ModuleClass.class)
@Singleton
public interface ComponentClass {
void inject(Interceptor o);
void inject(OkHttpClient o);
void inject(Retrofit o);
void inject(WebServiceCall o);
}
0 votes
Ajoutez vos composants et modules à la question
0 votes
Ces
void inject(...)
les méthodes sont toutes mauvaises, supprimez les 4 d'entre elles0 votes
@EpicPandaForce , j'ai supprimé - aucun effet !
1 votes
Dans ce cas, vous devriez vérifier les messages du compilateur et voir s'il y a autre chose qui a échoué.
1 votes
@EpicPandaForce , Error :(25, 21) error : cannot find symbol variable DaggerClassComponent Error:Execution failed for task ':sdk:compileReleaseJavaWithJavac'. > La compilation a échoué ; consultez la sortie d'erreur du compilateur pour plus de détails.
0 votes
Quelque chose avant ou après ça. Ou votre déclaration d'importation est manquante.
0 votes
@EpicPandaForce , j'ai cette guerre : Warning:Using incompatible plugins for the annotation processing : Android-apt. Cela peut entraîner un comportement inattendu.
0 votes
Vous avez probablement mélangé
annotationProcessor
yapt
dans votrebuild.gradle
. Remplacer tous lesapt
conannotationProcessor
et retirerapply plugin: 'android-apt'
.