添加ContributesAndroidInjector时找不到符号类DaggerAppComponent

时间:2018-10-15 21:17:26

标签: android dependency-injection dagger-2

仅当我在ActivityBuilder中添加Cannot find symbol class DaggerAppComponent批注后,在构建应用程序时,我一直收到@ContributesAndroidInjector错误。

我有一个概念验证项目,该项目具有完全相同的设置,并且可以很好地构建/工作。真的不知道为什么现在不构建。

这是我所拥有的:

AppComponent

@Singleton
@Component(modules = {
    AndroidInjectionModule.class,
    AppModule.class,
    ActivityBuilder.class})
public interface AppComponent {

void inject(MyApplication application);

@Component.Builder
interface Builder {

    @BindsInstance
    Builder application(Application application);

    AppComponent build();
}}

AppModule

@Module
public class AppModule {

    @Provides
    @Singleton
    PrefsHelper providePrefsHelper(PrefsHelperImpl prefsHelper) {
        return prefsHelper;
    }

    @Provides
    @Singleton
    DataManager provideDataManager(DataManagerImpl dataManager) {
        return dataManager;
    }

    @Provides
    @Singleton
    Context provideContext(Application application) {
        return application;
    }

    @Provides
    SchedulerProvider provideSchedulerProvider() {
        return new SchedulerProviderImpl();
    }

    @Provides
    @PrefsInfo
    String providePreferencesName() {
        return C.PREFS_NAME;
    }
}

ActivityBuilder

@Module
public abstract class ActivityBuilder {
    @ContributesAndroidInjector(modules = {
            MainActivityModule.class})
    abstract MainActivity bindMainActivity();
}
onCreate内的

Application

DaggerAppComponent.builder()
            .application(this)
            .build()
            .inject(this);
对于此示例,

MainActivityModule 为空:

@Module
public class MainActivityModule {

}

我正在使用支持库版本26.1.0和匕首2.16

implementation "com.google.dagger:dagger-android:$rootProject.daggerVersion"
implementation "com.google.dagger:dagger-android-support:$rootProject.daggerVersion"
annotationProcessor "com.google.dagger:dagger-compiler:$rootProject.daggerVersion"
annotationProcessor "com.google.dagger:dagger-android-processor:$rootProject.daggerVersion"

只要删除ContributesAndroidInjector行,项目就可以正常构建,否则我得到Cannot find symbol class DaggerAppComponent。任何人都知道什么地方可能出问题了吗?

0 个答案:

没有答案