当前位置: 首页 > 面试题库 >

具有多个依赖项的Dagger2组件

燕照
2023-03-14
问题内容

这是我目前拥有的并且可以正常工作:

@FragmentScope
@Component(dependencies = {FacebookComponent.class}, 
           modules = {FragmentFacebookLoginModule.class})
public interface FragmentFacebookLoginComponent {

    void inject(FragmentFacebookLogin fragment);
}

现在,我想添加另一个依赖项。我将其更改为:

@Component(dependencies = {FacebookComponent.class, AnotherComponent.class}, 
           modules = {FragmentFacebookLoginModule.class})

但是现在我收到此错误消息:

FragmentFacebookLoginComponent依赖于多个作用域组件

我该如何解决?我如何有多个依赖关系?

如果我从一个组件中删除范围,则会收到此错误消息:

AnotherComponent(无作用域)不能依赖范围内的组件


问题答案:

最后,我创建了一个具有正确范围的AppComponent,并让FacebookComponent和AnotherComponent扩展了此AppComponent。

FacebookComponent和AnotherComponent没有自己的作用域(我删除了它)。

现在看起来像这样:

@AppScope
@Component
public interface AppComponent {

}


@Component(modules = {FacebookModule.class})
public interface FacebookComponent extends AppComponent {

}


@Component(modules = {AnotherModule.class})
public interface AnotherComponent extends AppComponent {

}


@FragmentScope
@Component(dependencies = {FacebookComponent.class, AnotherComponent.class}, 
           modules = {FragmentFacebookLoginModule.class})
public interface FragmentFacebookLoginComponent {

    void inject(FragmentFacebookLogin fragment);
}


 类似资料:
  • 问题内容: 我不太了解jQuery的魔术延迟对象。假设以下代码: 我要执行的操作的顺序是这样的-最后,我将调用四个Web服务,而调用彼此依赖(一个长链): 呼叫 依存呼叫 依存呼叫 调用依赖于和 如您所知2和3可能同时发生。我想我可以使用(或?),我只是不知道如何在这里应用它。我想我需要重新编写功能以始终返回ajax对象? 伪代码如下所示: 问题答案: $ .ajax返回jQuery承诺。然后,您

  • 我已经在NetBeans8.1中创建了5个不同的Java SE项目。我想创建一个新的项目,该项目带有一个介绍窗口,该窗口带有链接/打开链接到该按钮的项目的按钮,并从该窗口创建一个软件。 我已经在主项目->Properties->Library->Compile->Add Project中添加了依赖项(其他项目的jar文件)。 当我在netbeans中运行它们时,运行窗口打开了,但是当我从主项目中调

  • 在阅读dagger 2的文档时,我找不到一种简单的方法来在构建测试应用时提供依赖项。我找到的唯一线索是: 匕首2不支持覆盖。覆盖简单测试假货的模块可以创建模块的子类来模拟该行为。应该分解使用覆盖并依赖依赖依赖项注入的模块,以便将被覆盖的模块表示为两个模块之间的选择。 我不明白我将如何在Android上设置这样的配置,任何人都可以解释吗?

  • 我正在为jboss ear应用程序编写一个EJB jar模块。我使用的是gradle,我不想试图从JBoss声明jar在运行时依赖的所有不同依赖项。是否有一种方法可以声明对目录树中所有文件的依赖关系。

  • 我试图用Maven做一个小程序。我使用的是来自我大学教授的模板,我想使用log4j进行日志记录。当我在eclipse中运行该程序时,它工作得很好。然而,当我用“MVN install”创建jar并尝试用cmd运行程序时,我得到的是一个NoClassDefFoundError 我在这里还发现了这一点:NoClassDefFoundError在Maven依赖上,我尝试使用maven-shade-plu

  • 我有一个多模块Maven项目,有模块“app”和“域”。应用依赖于域。域模块有公共和私有代码。公共代码在包中。 在Domain模块的pom中,我添加了maven jar插件的执行,该插件使用分类器“api”(仅包含公共类)生成一个额外的项目工件。 在应用程序模块中,我在域模块上添加了一个“运行时”范围的依赖项(因此所有类都存在于运行时),并在分类的“API”上添加了编译时范围的依赖。这是为了确保应