单例组件不能依赖于作用域组件

2024-01-02

在工作的同时Android应用程序使用Dagger2用于定义时的依赖注入Dagger组件我收到此错误

Error:(13, 1) error: This @Singleton component cannot depend on scoped components:
@Singleton com.eaxample.app.DaggerAndroid.networkhandler.WebserviceComponent

我的组件代码在这里:

@Singleton
@Component(modules = {WebserviceModule.class}, dependencies = {ApplicationComponent.class})
public interface WebserviceComponent {
      WebserviceHelper providesWebserviceHelper();
}

我收到错误的组件代码是:

@Singleton
@Component(modules = {RemoteDataModule.class}, dependencies = {WebserviceComponent.class})
public interface RemoteDataSourceComponent {
       RemoteDataSource providesRemoteDataSource();
}

为什么我会收到此错误以及如何解决此问题?


虽然 dmitriyzaitsev 的答案解释了为什么会出现错误,但解决方法如下:

  1. 定义您自己的作用域(它实际上也表现得像单例作用域)。例如。一个名为RemoteDataScope.java:

    @Scope
    @Retention(RetentionPolicy.RUNTIME)
    public @interface RemoteDataScope {
    }
    
  2. 使用新的范围,例如@RemoteDataScope代替@Singleton在你的RemoteDataSourceComponent:

    @RemoteDataScope
    @Component(modules = {RemoteDataModule.class}, dependencies = {WebserviceComponent.class})
    public interface RemoteDataSourceComponent {
           RemoteDataSource providesRemoteDataSource();
    }
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单例组件不能依赖于作用域组件 的相关文章

  • ListView 和 CursorAdapter 对于大量数据的性能问题

    我在 sqlite 表中有大约 4k 行 表有 7 列 我用自己的 CursorAdapter 创建了工作 ListView 查询是这样的SELECT FROM table ORDER BY column DESC 表有第一列 id INT
  • 即使成功固定后,ParseQuery 在从本地数据存储查询时也给出 0 个对象

    我正在使用 parse com 的 Android SDK 并且遇到了一个特殊的问题 从片段的 onCreate 中 从服务器获取一个对象 Pin it 从本地数据存储中获取对象 以下是 onCreate 中的代码片段 ParseObjec
  • 浮动操作按钮动画

    当 fab 出现时 它使用动画中的比例进行动画处理 当它隐藏时 它使用向外扩展动画 因此 它是一个缩小和缩小的动画 这个动画要怎么制作呢 从 Zielony 的回答来看 我完全按照我想要的方式制作了它 下面是正确应用效果的代码 scale
  • 清除未接来电并清除 Android 栏中的通知

    使用此代码 我设法将所有未接来电标记为已读 ContentValues values new ContentValues values put Calls NEW 0 if android os Build VERSION SDK INT
  • 使用书法库的某些活动使用不同的字体

    我在用书法 https github com chrisjenx Calligraphy在我的应用程序中使用自定义字体的库 我使用默认字体为整个应用程序设置了自定义字体CalligraphyConfig in my Application类
  • 5.1 崩溃 - 任务描述的主要颜色应该是不透明的

    我已经在我的应用程序中实现了材料设计 它在 FATAL EXCEPTION main Process com test test PID 3195 java lang RuntimeException Unable to start act
  • 将倒计时器从 10 秒改为 1 秒

    我有一个倒计时器 它以 1 秒的增量从 10000 毫秒倒计时到 0 毫秒 以使按钮在 10 秒后可单击 尽管计时器是准确的并且按照代码的说明执行操作 但我想更改秒的表示方式 但我不知道如何更改 java void startTimer c
  • Android 线程和处理程序不工作

    我最近重构了一个旧项目 发现无论我做什么 特定部分都不再需要正常运行 本质上 我有一个带有 TextView 的 Activity 该视图按时间间隔从同一类中调用的线程更新 暂停是通过 Thread sleep 完成的 并且使用 Handl
  • 已将 APK 上传到 Play 商店,获得 0 个受支持的设备,但没有错误

    我正在尝试将我的应用程序的 Alpha 版本发布到 Play 商店 但我得到了 0 个受支持的设备 这令人沮丧 因为我没有看到该错误 该项目是一个新的样式 gradle API声明和版本在build gradle中定义 您可以在此处获取该应
  • Android API 列表

    我想获取 CellInfo 数据 但 cellinfo size 总是发生 模拟器中的 NullPointerException 细胞信息链接 http developer android com reference android tel
  • 来自 InputStream 的 Android 通用图像加载器 URI

    我想问一下UIL URI是从InputStream输入的 因为我的图像源来自 ZIP 然后我必须提取它才能显示该图像 因为图像太大 我必须使用UIL库 任何人都知道如何从InputStream插入UIL 我认为你可以这样做类似于从数据库加载
  • 语音识别和文本转语音

    我想开发一个实现语音识别的应用程序 然后使用文本到语音引擎实现文本到语音 我发布了下面的代码 我使用两个按钮和一个列表视图 一个按钮用于语音识别 另一个按钮用于文本转语音 列表视图用于两者 首先在列表视图中发布语音识别的结果 然后应用程序将
  • 如何将 Material 按钮与其他 UI 元素对齐

    我无法将默认材质按钮与 UI 的其他元素对齐 事实上 我已经查看了 Android 源代码 按钮的背景包含插图 以便能够绘制阴影并处理单击时按钮的高度
  • 丢弃对 OpenGL 中的程序性能有影响吗?

    我正在读书this http code google com p gdc2011 android opengl wiki TalkTranscript文章 作者写道 以下是如何通过两个简单的步骤在每个平台上编写高性能应用程序 遵循最佳实践
  • AWS Cognito-获取带有ID的用户信息

    有没有什么方法可以获取 AWS Cognito 池 在 Android 上 中未登录的用户的信息 并知道他的 ID 我尝试了该代码 AppHelper getPool getUser username getDetailsInBackgro
  • 使用 Espresso + MockK 进行 Android UI 测试时,在模拟器上使用 SIGSEGV 会崩溃,在物理设备上则正常

    我刚刚开始使用MockK模拟基于 MVP 的应用程序中的所有存储库 服务逻辑以进行 UI 测试 我有一些运行登录活动的 UI 测试 其中 Espresso 输入登录名和密码 并使用 MockK 我可以fake登录失败或无法登录的各种情况 所
  • 当 SystemUI 在 Android Boot 中加载时

    如何知道系统 UI 何时加载Android启动过程 状态栏和导航栏视图到底绘制在哪里 作为SystemUI是一个特权应用程序 那么它是否在启动器应用程序 主屏幕 启动之前加载 我不知道 欢迎任何建议 下面是一系列简要解释的步骤 希望能够阐明
  • 同一活动中的多个日期选择器

    我对 Android 平台完全陌生 在学习开发过程的同时一直在构建应用程序 目前 我正在开展一项活动 需要部署 2 个日期选择器 一个是 开始日期 另一个是 结束日期 我一直在关注 Android 开发者页面上的 DatePicker 教程
  • Android ACTION_MOVE阈值

    我正在编写一个应用程序 需要使用手指或最终使用手写笔在屏幕上书写 我有那部分工作 在 ACTION DOWN 时 开始绘制 在 ACTION MOVE 上 添加线段 在 ACTION UP 上 完成该行 问题是 在 ACTION DOWN
  • 当应用程序在 Android 中首次启动时,仅显示一次消息对话框

    我在android中开发了一个应用程序 其中一个重要的要求是仅在应用程序第一次运行时显示语言支持的消息对话框 然后每次用户再次运行应用程序时它都会消失 我 我尝试过使用共享首选项 但没有成功 还有其他方法吗 在 onCreate 处理程序中

随机推荐