作者:卢启红 | 来源:互联网 | 2023-02-04 22:28
在我的模块中,在我的基础Application类中
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'
在Project build.gradle中,
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
我已经完成了build/rebuild/clean/restart项目.我有一个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);
}
Gonzalo..
82
在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'
Uddhav Gauta..
27
这是新鲜Dagger项目的解决方案.
这两行负责在Dagger 2中生成编译时框架.
compile 'com.google.dagger:dagger:2.14.1'
//在编译时
annotationProcessor 'com.google.dagger:dagger-compiler:2.14.1'
生成框架//根据您提供的注释在编译时生成框架.
完全设置匕首
//dagger 2
compile 'com.google.dagger:dagger:2.14.1'
annotationProcessor 'com.google.dagger:dagger-compiler:2.14.1'
//to enable DaggerActivity, DaggerBroadcastReceiver, DaggerFragment etc classes
compile 'com.google.dagger:dagger-android:2.14.1'
annotationProcessor 'com.google.dagger:dagger-android-processor:2.14.1'
//support libraries with dagger 2
compile 'com.google.dagger:dagger-android-support:2.14.1'
注意:您需要配置注释过程,如下面的屏幕截图所示.你可以做这个File>Other Settings>Default Settings>
搜索"Annotation processor"
![在此输入图像描述](https://img.php1.cn/3cd4a/1eebe/cd5/99b88427bc9ce0dc.webp)
1> Gonzalo..:
在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'
2> Uddhav Gauta..:
这是新鲜Dagger项目的解决方案.
这两行负责在Dagger 2中生成编译时框架.
compile 'com.google.dagger:dagger:2.14.1'
//在编译时
annotationProcessor 'com.google.dagger:dagger-compiler:2.14.1'
生成框架//根据您提供的注释在编译时生成框架.
完全设置匕首
//dagger 2
compile 'com.google.dagger:dagger:2.14.1'
annotationProcessor 'com.google.dagger:dagger-compiler:2.14.1'
//to enable DaggerActivity, DaggerBroadcastReceiver, DaggerFragment etc classes
compile 'com.google.dagger:dagger-android:2.14.1'
annotationProcessor 'com.google.dagger:dagger-android-processor:2.14.1'
//support libraries with dagger 2
compile 'com.google.dagger:dagger-android-support:2.14.1'
注意:您需要配置注释过程,如下面的屏幕截图所示.你可以做这个File>Other Settings>Default Settings>
搜索"Annotation processor"
![在此输入图像描述](https://img.php1.cn/3cd4a/1eebe/cd5/99b88427bc9ce0dc.webp)
在Windows上允许“注释处理器”的正确路径是文件->其他设置->新项目的设置...
3> Alex Shutov..:
也许你忘了用@Module注释ModuleClass?