【发布时间】:2019-05-09 15:08:39
【问题描述】:
我已经将 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();
}
仍然面临同样的问题。
【问题讨论】:
-
找到你在哪里引用 Dagger 生成的代码,如果它是有意的,然后用
@SuppressWarnings("RefersToDaggerCodegen")抑制警告? -
@EpicPandaForce 你能检查我的编辑吗?我也补充说,但仍然面临同样的问题。我做错了什么?
-
您可能需要将抑制放在实际实例化组件的位置:
DaggerApplicationComponent. -
@EpicPandaForce 你能检查我的编辑 2
-
也许
ErrorProne在这一点上只是愚蠢,它真的 没有指定文件或警告的行吗?