gpt4 book ai didi

android - 未生成 Dagger 2 组件

转载 作者:IT老高 更新时间:2023-10-28 21:47:34 25 4
gpt4 key购买 nike

在我的模块中,在我的基础应用程序类中

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'

我已经完成了构建/重建/清理/重启项目。我有一个注入(inject)对象的 Component 类和一个提供要注入(inject)的对象的 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);

}

最佳答案

在 Kotlin 上开发时,您应该在其 annotationProcessor 对应项旁边添加以下行:

kapt 'com.google.dagger:dagger-android-processor:2.15'
kapt 'com.google.dagger:dagger-compiler:2.15'

并在同一文件的开头添加 apply plugin: 'kotlin-kapt'

该部分对我来说是这样的:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt' // <- Add this line
apply plugin: 'io.fabric'

关于android - 未生成 Dagger 2 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43756498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com