Android Dagger无法构建

时间:2019-05-06 10:11:03

标签: android dagger

我已经将Dagger添加到了我的应用程序中。现在,在将Android Studio和项目更新为最新的AndroidX版本之后,我将面临以下错误。

error: [RefersToDaggerCodegen] Don't refer to Dagger's internal or generated code
(see https://errorprone.info/bugpattern/RefersToDaggerCodegen)

如何解决此构建错误。

编辑: 我正在尝试注入以下匕首

((App) appContext).getApplicationComponent().inject(this);

在界面内部

@SuppressWarnings({"RefersToDaggerCodegen"})
@Singleton
@Component(modules = {
    ApplicationModule.class,
    DatabaseModule.class,
    NetworkModule.class,
    QuranDataModule.class,
    QuranPageModule.class } )
public interface ApplicationComponent {
     @SuppressWarnings("RefersToDaggerCodegen")
      void inject(QuranDataProvider quranDataProvider);

编辑2 我已经初始化了如下组件:

 @SuppressWarnings("RefersToDaggerCodegen")
  protected ApplicationComponent initializeInjector() {
    return DaggerApplicationComponent.builder()
        .applicationModule(new ApplicationModule(this))
        .build();
  }

仍然面临同样的问题。

1 个答案:

答案 0 :(得分:0)

我的项目的问题是我使用的匕首旧版本不太旧,但不是最新版本。所以我将kotlin版本和Dagger版本更新为以下版本

kotlinVersion = '1.3.31'
daggerVersion = '2.15'

然后在您的gradle-wrapper.properties中,更新如下所示的分发网址

distributionUrl=https\://services.gradle.org/distributions/gradle-5.2-all.zip

最后还更新容易出错的版本

classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.8"

我已完成上述所有步骤。现在,我可以成功构建我的应用程序了。

感谢@EpicPandaForce的帮助