错误:使用了@ dagger.android.ContributesAndroidInjector,但未找到dagger.android.processor.AndroidProcessor

Mic*_*ons 13 java android dependency-injection dagger-2

我正在尝试设置Dagger 2.12,我收到此错误:

错误:使用了@ dagger.android.ContributesAndroidInjector,但在处理器路径上找不到dagger.android.processor.AndroidProcessor

这是我配置Dagger的方式:

我的应用类:

public final class App extends android.app.Application implements HasActivityInjector {

    @Inject
    DispatchingAndroidInjector<Activity> activityInjector;

    @Override
    public void onCreate() {
        super.onCreate();
        DaggerAppComponent.builder().build().inject(this);
    }

    @Override
    public AndroidInjector<Activity> activityInjector() {
        return activityInjector;
    }
}
Run Code Online (Sandbox Code Playgroud)

ActivityBindingModule:

@Module
public abstract class ActivityBindingModule {

    @ContributesAndroidInjector(modules = SearchActivityModule.class)
    abstract SearchActivity searchActivity();
}
Run Code Online (Sandbox Code Playgroud)

SearchActivityModule:

@Module
public class SearchActivityModule {

    @Provides
    public SearchActivityDelegate getDelegate(SearchActivity searchActivity) {
        return searchActivity;
    }

    @Provides
    public SearchActivityPresenter providePresenter(SearchActivity searchActivity) {
        return new SearchActivityPresenter(new OtherDependency(), searchActivity);
    }
}
Run Code Online (Sandbox Code Playgroud)

的AppModule:

@Module(includes = { AndroidInjectionModule.class, ActivityBindingModule.class })
public abstract class AppModule {

}
Run Code Online (Sandbox Code Playgroud)

有谁知道可能导致此错误的原因是什么?

小智 32

转到您的模块级别build.gradle,在

annotationProcessor 'com.google.dagger:dagger-android-processor:[YOUR VERSION NUMBER]',

加:

kapt 'com.google.dagger:dagger-android-processor:[YOUR VERSION NUMBER]'.


gop*_*nrc 7

可能您会错过以下依赖项。

annotationProcessor 'com.google.dagger:dagger-android-processor:' + yourDaggerVersion
Run Code Online (Sandbox Code Playgroud)


iss*_*mux 5

对我来说,唯一的解决方案是使用旧版本的Dagger(2.16)

kotlin version : 1.2.71
// dagger
implementation 'com.google.dagger:dagger-android:2.16'
implementation 'com.google.dagger:dagger-android-support:2.16'
kapt "com.google.dagger:dagger-compiler:2.16"
kapt "com.google.dagger:dagger-android-processor:2.16"
Run Code Online (Sandbox Code Playgroud)


Pra*_*kla 5

对于 Java

将此添加到您的 build.gradle

annotationProcessor "com.google.dagger:dagger-android-processor:$dagger_version"
Run Code Online (Sandbox Code Playgroud)

对于科特林

将此添加到您的 build.gradle

apply plugin: 'kotlin-kapt'

 kapt "com.google.dagger:dagger-android-processor:$dagger_version"
Run Code Online (Sandbox Code Playgroud)