web-dev-qa-db-ja.com

エラー:@ dagger.Android.ContributesAndroidInjectorが使用されましたが、dagger.Android.processor.AndroidProcessorが見つかりませんでした

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 {

}

誰かがこのエラーを引き起こしている可能性があることを知っていますか?

14
Micah Simmons

モジュールレベルに移動しますbuild.gradle、 下

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

追加:

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

37
Sam W.

私にとっての唯一の解決策は、古いバージョンの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"
5
issamux

おそらく、次の依存関係を見逃していたでしょう。

annotationProcessor 'com.google.dagger:dagger-Android-processor:' + yourDaggerVersion
4
gopalanrc

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"
3
Prakash Shukla