【发布时间】:2017-10-01 01:49:08
【问题描述】:
在我的模块中,在我的基础应用程序类中
component = DaggerCompClassComponent.builder()
.classModule(new ModuleClass()).build();
它找不到 DaggerCompClassComponent。
我在模块 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'
在项目 build.gradle 中,
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
我已经完成了构建/重建/清理/重启项目。我有一个注入对象的 Component 类和一个提供要注入的对象的 ModuleClass。
不生成 Dagger 组件的原因可能是什么。上课?
编辑:
这是我的 ModuleClass,带有 @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);
}
这是我的组件类:
@Component(modules = ModuleClass.class)
@Singleton
public interface ComponentClass {
void inject(Interceptor o);
void inject(OkHttpClient o);
void inject(Retrofit o);
void inject(WebServiceCall o);
}
【问题讨论】:
-
将您的组件和模块添加到问题中
-
那些
void inject(...)的方法都错了,把4个都去掉 -
@EpicPandaForce ,我已删除 - 无效!
-
在这种情况下,您应该检查编译器的消息,看看是否还有其他失败的地方。
-
@EpicPandaForce , 错误:(25, 21) 错误: 找不到符号变量 DaggerClassComponent 错误: 任务':sdk:compileReleaseJavaWithJavac' 执行失败。 > 编译失败;有关详细信息,请参阅编译器错误输出。