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

时间:2017-12-10 13:53:10

标签: 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;
    }
}

ActivityBindingModule:

@Module
public abstract class ActivityBindingModule {

    @ContributesAndroidInjector(modules = SearchActivityModule.class)
    abstract SearchActivity searchActivity();
}

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);
    }
}

的AppModule:

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

}

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

4 个答案:

答案 0 :(得分:23)

转到

下的模块级build.gradle

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

添加:

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

答案 1 :(得分:4)

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

runtimes/win/lib/netcoreapp2.0

答案 2 :(得分:2)

可能你会错过以下依赖。

annotationProcessor 'com.google.dagger:dagger-android-processor:' + yourDaggerVersion

答案 3 :(得分:1)

对于Java

将此添加到您的build.gradle

annotationProcessor "com.google.dagger:dagger-android-processor:$dagger_version"

对于Kotlin

将此添加到您的build.gradle

apply plugin: 'kotlin-kapt'

 kapt "com.google.dagger:dagger-android-processor:$dagger_version"