当前位置: 首页 > 知识库问答 >
问题:

Dagger 2编译错误

罗渝
2023-03-14

我正试图在我的项目中使用Dagger2,但安装后我出现了一个错误:

Error:(14, 8) error: Scoping annotations are only allowed on concrete types and @Provides methods: ApplicationComponent

有我的模块和组件文件

import javax.inject.Singleton;

import dagger.Component;

@Singleton
@Component(modules = {ApplicationModule.class})
public interface ApplicationComponent {
    void inject(BaseActivity activity);

    Context context();
}
@Module
public class ApplicationModule {
    public Context context;

    public ApplicationModule(@NonNull Context context) {
        this.context = context;
    }

    @Provides
    @Singleton
    Context provideApplicationContext() {
        return this.context;
    }
}

我使用以下依赖关系:

apt 'com.google.dagger:dagger-compiler:2.7'
compile 'com.google.dagger:dagger:2.7'
provided 'javax.annotation:jsr250-api:1.0'

还有,我有这个错误:

    Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> com.google.common.util.concurrent.ExecutionError: java.lang.NoSuchMethodError: dagger.internal.codegen.Util.isAnyAnnotationPresent(Ljavax/lang/model/element/Element;Ljava/lang/Iterable;)Z

共有1个答案

巫马化
2023-03-14

当您从ApplicationComponent中删除@Singleton注释时会发生什么?

例外情况是告诉你dagger 2不支持注释组件,但是你可以这样使用注释:

@Singleton
Context context();
 类似资料:
  • 我正在尝试使用Dagger2学习依赖注入。我已经创建了很少的自定义范围和限定符。我已经创建了一个应用程序组件,我想在其中注入某些全局依赖项,我还创建了一个活动组件,它将基于活动上下文返回某些实例。 现在,当我试图在活动中注入全局实例时,我得到了如下错误: ApplicationScope.kt 在注入活动类中使用的ActivityComponent.kt。 用于注入应用程序类的FireBaseCo

  • 问题内容: 当我在Netbeans中构建并运行程序时,它可以正常工作。但是当我尝试“ mvn compile”时,使用相同的pom.xml文件会出现以下错误: 我的Java版本不是1.3,这里是“ mvn -version”的结果 这是第53行: 问题答案: 问题是在Maven2中默认使用和 您可以通过将其添加到pom中来解决此问题: 将其放在最顶层的父pom中是很实际的,这样您派生的pom不需要

  • 我遇到了一个初学者的编译错误: 我的简单程序: 我尝试使用以下命令编译它: gcc-g-Wall-ansi launch_瓷砖。c-o tiles\u程序 并得到这些错误: 启动_tiles。c: 在函数“main”中: launch_tiles. c: 17:19:错误:预期')'之前';'令牌 launch_tiles. c: 17:19:错误:太少的参数函数'fget' /usr/inclu

  • 当我退出我的应用程序时,这个folloeing错误已经产生。

  • 我是Scala和SBT的新手,所以我可能会遗漏一些明显的东西。 我试图编译http://www.scalafx.org/docs/quickstart/上的HelloWorld示例

  • 编译模块com。实例我的包裹。GWT。HelloGWT [INFO]验证新编译的单元 [INFO]在第一次过程中忽略了1个单元,其中包含编译错误 [INFO]编译时将-strict或-logLevel设置为TRACE或DEBUG以查看所有错误 [INFO]在文件:/home/ilsurih/Projects/maven hibernate/src/main/java/com/example/myP

  • 我有以下代码: 我希望它输出“0,1,2,3”并停止,但它输出的是一系列无穷无尽的“0、1、2、3、4、5……” 看起来比较< code>di 如果我只是注释掉< code >,delta=mc[di],我会正常得到“0,1,2,3”。无辜作业有什么问题? 我正在使用Ideone.com g14带-O2选项。

  • 我正在与ATM案例研究一起工作,从Deitel java如何编程第9版。 案例研究在第13章,第546页(万一有人有这本书并想要查看),我确信我的代码是100%如书中所建议的那样。 我已经设置了所有的代码,但当我尝试运行程序时,它给了我以下信息: 当我试图从类路径使用terminal编译类时,它给出了以下错误: 这是正在进行的课程:直截了当地往前走,但我似乎找不到问题所在。有人帮忙吗?