我已经将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();
}
仍然面临同样的问题。
答案 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的帮助