Dagger with Hilt 将 ActivityContext 从模块注入适配器中

2023-11-21

我正在使用匕首和刀柄,我想将 @ActivityContext 从模块注入到适配器,但我收到此错误 -

ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1ANTLR Runtime version 4.5.3 used for parser compilation does not match the current runtime version 4.7.1ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1ANTLR Runtime version 4.5.3 used for parser compilation does not match the current runtime version 4.7.1/mnt/My Projects/app/build/generated/source/kapt/debug/app/myapp/MyApp_HiltComponents.java:156: error: [Dagger/MissingBinding] @dagger.hilt.android.qualifiers.ActivityContext android.content.Context cannot be provided without an @Provides-annotated method.
  public abstract static class ApplicationC implements MyApp_GeneratedInjector,
                         ^
      @dagger.hilt.android.qualifiers.ActivityContext android.content.Context is injected at
          app.myapp.di.modules.activitiesModules.HomeActivityModule.provideAdapterFragmentState(context)
      app.myapp.ui.base.AdapterFragmentState is injected at
          app.myapp.ui.home.HomeActivity.adapterFragmentState
      app.myapp.ui.home.HomeActivity is injected at

这是我的 HomeActivityModule -

@Module
@InstallIn(ActivityRetainedComponent::class)
object HomeActivityModule {

    @Provides
    @ActivityRetainedScoped
    fun provideAdapterFragmentState(@ActivityContext context: Context): AdapterFragmentState {
        return AdapterFragmentState(context)
    }

}

这是我的适配器 -

@ActivityRetainedScoped
class AdapterFragmentState @Inject constructor(@ActivityContext context: Context)
    : FragmentStateAdapter(context as AppCompatActivity){

哪一部分是错误的?


@Module
@InstallIn(ActivityComponent::class)
object HomeActivityModule {

    @Provides
    @ActivityScoped
    fun provideAdapterFragmentState(@ActivityContext context: Context): AdapterFragmentState {
        return AdapterFragmentState(context)
    }

}

Edited :

因为 ActivityRetainedComponent 可以跨配置更改而存在,而 ActivityComponent 则不能。

如果你想注入@ActivityContext,你的模块应该安装在ActivityComponent中,并且注入的对象必须是@ActivityScoped。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dagger with Hilt 将 ActivityContext 从模块注入适配器中 的相关文章

随机推荐

  • Backbone.save POST 而不是 PUT

    只是一个简短的问题 拥有模型的新实例并发出model save URL 设置为 api store category Backbone 发出 POST 据我所知 它应该使用 PUT 就像本中提到的那样 PUT 或 POST 故事的其余部分
  • linux/module.h 没有这样的文件或目录

    在我的论文中 我将使用 ARAN 协议创建一个马奈 安装我正在使用的协议本手册 但是第一步 创建trace route 我收到了错误 例如 linux module h No such file or directory linux pro
  • C# 中的finally 块是必须的吗?

    2个条件有什么区别 每次method1和method2运行时 都应该有一个代码块需要运行 在我看来 两种方法是相同的 example method1 void Method1 void try do something catch Exce
  • OnItemLongClickListener 无法在自定义列表视图中工作

    我希望在长时间单击自定义列表视图中的项目后显示上下文菜单 我正在使用动作栏夏洛克 尝试使用 Toast 通知进行调试 我发现长按事件未触发 如何解决这个问题 m vwJokeLayout ListView findViewById R id
  • 是否可以通过 Julia 中的覆盖函数来调用重载函数?

    问题如下 我有一个抽象类型MyAbstract和派生的复合类型MyType1 and MyType2 abstract type MyAbstract end struct MyType1 lt MyAbstract somestuff e
  • 动画剪辑:矩形属性?

    我想为 css 属性设置动画clip rect与 jQuery 的 animate 但无法找到这是否可能在任何地方 试过 img1 animate clip rect 1px 945px 499px 1px 300 没有任何运气 有人知道吗
  • 在 C 中转换为 ASCII

    使用微控制器 PIC18F4580 我需要收集数据并将其发送到 SD 卡以供以后分析 它收集的数据的值介于 0 到 1023 或 0x0 到 0x3FF 之间 所以我需要做的是将 1023 转换为以 10 为基数的 ASCII 值字符串 0
  • 使用 AutoIt 发送电子邮件

    如何使用 AutoIt 发送电子邮件 只需要一个干净的示例和解释 其中包含 to from subject message 使用内置代码有两种主要方法 INetMail 或 INetSmtpMail 以下是帮助文件中的简单代码示例 如果您对
  • 从 iOS 应用程序上传文件到 ftp

    我读了SimpleFTP示例但我需要一个比这个文档更好的例子 我在 Google 上搜索了一些其他示例 但我发现的所有网站最终都引用了 Apple 文档 而且我还没有找到任何其他没有引用的内容 有人能帮我吗 谢谢 为 iOS 编写了一个易于
  • Global const string& 对我来说很难闻,它真的安全吗?

    我正在审查一位同事的代码 我发现他在全局范围内定义了几个常量 如下所示 const string SomeConstant This is some constant text 就我个人而言 这对我来说很糟糕 因为该引用指的是我假设是从给定
  • AFNetworking后台文件上传

    我想从我的应用程序将文件上传到我的服务器 当应用程序处于活动状态时 下面的代码运行良好 如果我按主页按钮或打开另一个应用程序 上传就会停止 我激活了后台获取但仍然无法工作 Afnetworking 有后台支持 但我不知道如何在我的代码中实现
  • 将foreignKey小部件添加到django-import-export

    我正在尝试将数据导入到我的模型之一 但它失败了 因为我正在尝试上传foreignKey Id 而不是导入导出创建的迭代数 模型 py from django db import models from import export impor
  • 将数字四舍五入到最接近的 5 的倍数

    有谁知道如何将数字四舍五入到最接近的 5 倍数 我找到了一种算法将其四舍五入到最接近的 10 倍数 但我找不到这个算法 这样就可以做十 个了 double number Math round len 5 10 0 10 0 要四舍五入到最接
  • @login_required Flask 应用程序出现问题

    我创建了一个处理身份验证的蓝图 该蓝图使用 Flask Login 并具有以下内容 以及更多未显示的代码 在蓝图中我有以下内容 from flask ext login import LoginManager from flask ext
  • Qt Creator 5 - 未设置调试器

    我设置了一个编译器微软 Visual C x86 编译器 但现在我有这个错误 编译器 Microsoft Visual C x86 Compiler 无法生成 Qt 版本的代码 警告 没有设置调试器 我想我需要设置调试器 但我不知道将 调试
  • 如何重命名 pandas 数据框的第一列?

    我在互联网上多次遇到这个问题 但除了以下几个之外 答案并不多 无法重命名 pandas DataFrame 中的第一列 我使用以下方法达到了相同的目的 df df rename columns df columns 0 Column1 有没
  • 在Oracle中将时差转换为给定格式

    我如何转换EVENT DATE B EVENT DATE A这是要串连的天数HH MM format 另一种方法 一个查询可以在不同的日子进行 with tt as select numToDsinterval EVENT DATE B E
  • Perl 匹配仅返回“1”。布尔值?为什么?

    这一定是显而易见的 但我只是没有看到它 我有一个包含数千条记录的文档 如下所示 Row 1 DATA 0 37755442 1 DDG00000010 2 FALLS 3 IMAGE 4 Defect 5 3 6 CLOSED 我已经设法将
  • 使用持久通知允许用户返回到正在运行的 Android 应用程序

    我正在开发一个包含大量活动的应用程序 我想创建一个持久通知 或多或少 说 AppName 返回AppName 每当我的后台服务运行时都会出现该通知 创建和处理通知没有问题 现在 用户可以在多个屏幕 活动中的任何一个上 离开应用程序 然后希望
  • Dagger with Hilt 将 ActivityContext 从模块注入适配器中

    我正在使用匕首和刀柄 我想将 ActivityContext 从模块注入到适配器 但我收到此错误 ANTLR Tool version 4 5 3 used for code generation does not match the cu