Hilt - CoroutineDispatcher 上缺少绑定

2024-01-09

我正在重构我的应用程序Hilt作为依赖注入管理器。 我有一个构造函数可注入类,构造函数中有两个参数。其中一个参数是CoroutineDispatcher.

class SubscriptionsLocalDataSource @Inject constructor(
    private val subscriptionsDao: SubscriptionsDao,
    private val dispatcher: CoroutineDispatcher = Dispatchers.IO
) : SubscriptionsDataSource {

}

当我尝试构建应用程序时,出现缺少绑定错误,如下所示:

错误:[Dagger/MissingBinding] 如果没有 @Provides 注释的方法,则无法提供 kotlinx.coroutines.CoroutineDispatcher。 公共抽象静态类ApplicationC实现ApplicationComponent, ^ kotlinx.coroutines.CoroutineDispatcher 被注入 com.anagramma.babacodashboard.data.subscriptions.local.SubscriptionsLocalDataSource(…,调度程序) com.anagramma.babacodashboard.data.subscriptions.local.SubscriptionsLocalDataSource 被注入 com.anagramma.babacodashboard.data.subscriptions.SubscriptionsRepositoryImpl(localDataSource, …) com.anagramma.babacodashboard.data.subscriptions.SubscriptionsRepositoryImpl 被注入 com.anagramma.babacodashboard.di.SubscriptionsModule.bindSubscriptionsRepository(subscriptionsRepositoryImpl) javax.inject.Provider 被注入 com.anagramma.babacodashboard.ui.orders.subscriptions.SubscriptionsViewModel_AssistedFactory(存储库,...) com.anagramma.babacodashboard.ui.orders.subscriptions.SubscriptionsViewModel_AssistedFactory 被注入 com.anagramma.babacodashboard.ui.orders.subscriptions.SubscriptionsViewModel_HiltModule.bind(工厂) java.util.Map>> 被注入 androidx.hilt.lifecycle.ViewModelFactoryModules.ActivityModule.provideFactory(…, viewModelFactories) @dagger.hilt.android.internal.lifecycle.DefaultActivityViewModelFactory java.util.Set 请求于 dagger.hilt.android.internal.lifecycle.DefaultViewModelFactories.ActivityEntryPoint.getActivityViewModelFactory() [com.anagramma.babacodashboard.BabacoDashboardApplication_HiltComponents.ApplicationC → com.anagramma.babacodashboard.BabacoDashboardApplication_HiltComponents.ActivityRetainedC → com.anagramma.babacodashboard.BabacoDashboardApplication _HiltComponents.ActivityC] 以下其他入口点也依赖于它: dagger.hilt.android.internal.lifecycle.DefaultViewModelFactories.FragmentEntryPoint.getFragmentViewModelFactory() [com.anagramma.babacodashboard.BabacoDashboardApplication_HiltComponents.ApplicationC → com.anagramma.babacodashboard.BabacoDashboardApplication_HiltComponents.ActivityRetainedC → com.anagramma.babacodashboard.BabacoDash boardApplication_HiltComponents.ActivityC → com.boardApplication_HiltComponents.ActivityC → com.boardApplication_HiltComponents.ActivityC → com. anagramma.babacodashboard.BabacoDashboardApplication_HiltComponents.FragmentC]

我是否缺少 CoroutineDispatcher 上的一些注释?


不知道这是否是最好的方法,但我只是通过创建一个来解决DispatcherModule依照指示本指南 https://www.valueof.io/blog/injecting-coroutines-dispatchers-with-dagger

@Module
@InstallIn(SingletonComponent::class)
object DispatcherModule {
    @IoDispatcher
    @Provides
    fun providesIoDispatcher(): CoroutineDispatcher = Dispatchers.IO
}

@Retention(AnnotationRetention.BINARY)
@Qualifier
annotation class IoDispatcher

然后我重构了原来的类以使用 IoDispatcher 注释:

class SubscriptionsLocalDataSource @Inject constructor(
    private val subscriptionsDao: SubscriptionsDao,
    @IoDispatcher private val dispatcher: CoroutineDispatcher
) : SubscriptionsDataSource {


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

Hilt - CoroutineDispatcher 上缺少绑定 的相关文章

  • android - EditText 打字速度很慢

    我的 EditText 在打字时响应速度很慢 这种滞后现象足以让我找到解决方案 我做了一些研究 发现了一个 SO 线程输入文本时 EditText 滞后 https stackoverflow com questions 6173591 a
  • doInBackground 运行时是否可以停止 asynctask?

    我正在 ActivityB Oncreate 中创建异步任务 在该任务中 我正在运行无限 while 循环doInBackground 当我转到上一个活动并再次回到该活动时 创建了另一个异步任务 我的问题现在是两个无限 while 循环正在
  • 启动 Twitter 应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 Twitter 应用程序的 Android Intent https stackoverflow com questions 2077008 android intent for twitter ap
  • MI设备中即使应用程序被杀死,如何运行后台服务

    您好 我正在使用 alaram 管理器运行后台服务 它工作正常 但对于某些 mi 设备 后台服务无法工作 我使用了服务 但它无法工作 如何在 mi 中运行我的后台服务 MI UI有自己的安全选项 所以你需要的不仅仅是上面提到的粘性服务 你需
  • 将标题设置为操作栏时出现空指针异常

    Error Caused by java lang NullPointerException Attempt to invoke virtual method void android app ActionBar setTitle java
  • Google Inbox 类似 RecyclerView 项目打开动画

    目前 我正在尝试实现 Google Inbox 例如RecyclerView行为 我对电子邮件打开动画很好奇 我的问题是 该怎么做 我的意思是 他们使用了哪种方法 他们用过吗ItemAnimator dispatchChangeStarti
  • invalidateOptionsMenu 在片段中不起作用

    显示或隐藏项目ActionBar根据文本中是否有文本EditText or not 所以 我做了以下事情 public class NounSearch extends android app Fragment EditText seach
  • 如何在 Android 上的 HttpPost 中发送 unicode 字符

    我试图在我的应用程序中允许多语言支持 这会发出 HTTP post 来上传新消息 我需要做什么才能支持日语和其他非拉丁语语言 我的代码目前看起来像这样 note the msg string is a JSON message by the
  • 我们可以在 android studio 中拥有没有 app 文件夹的项目,并将所有内容(java/res/etc)放在根目录中吗

    我想知道在 Android studio 中是否可以有没有应用程序模块 应用程序或任何其他名称 的 android 项目 意味着我可以在项目本身的根目录中创建包和资源 而不是使用应用程序模块 编辑 结构看起来像 MyApp idea gra
  • 在 Android 中使用 iText 读取或打开 PDF 文件

    我是 Android 应用程序开发新手 使用 iText 我完成了 PDF 创建并在创建的文件上写入 现在我想阅读该 PDF 文件 如何使用 iText 打开或阅读 PDF 文件 例子将是可观的 那么提前 哪个是渲染 PDF 文件的最佳库
  • 当应用程序未运行时如何堆叠 Firebase Cloud Messaging 通知?

    我在用Firebase Cloud Messaging将推送通知从我的服务器发送到我的 Android 应用程序 当应用程序运行时 通知是stacked因为我将它们设置为我的一个组FirebaseMessagingService 这很好 但
  • 手动启用时 Firebase Crashlytics 不报告崩溃

    Crashlytics 在没有选择加入报告的情况下也能正常工作 但一旦我根据规定设置了选择加入报告 它就会停止报告任何内容tutorial https firebase google com docs crashlytics customi
  • 点击监听器的公共类

    我的所有 6 项活动中有 7 个按钮 所有 6 个按钮在所有活动中都具有相同的功能 如何为这 6 个按钮执行通用的单击事件侦听器 您可以创建一个实现 View OnClickListener 的新类 如下所示 public class My
  • Android开发:未定义方法

    大家好 我是 Android 和 Eclipse 的新手 我刚刚遵循了developer android com 上的教程 现在我在添加操作栏 http developer android com training basics actio
  • 如何在android中录制音频时暂停背景音乐

    我正在 Android 中开发一个音频记录应用程序 因此 如果设备音乐播放器中已播放任何背景音乐 则应在开始录制之前暂停该背景音乐 并且每当录制停止或暂停时 背景音乐都应恢复 播放录制的音频时也应该如此 有人可以帮我解决这个问题吗 提前致谢
  • 无法在 Android 模拟器中安装 apk

    我正在尝试通过 adb shell 在 ICS 模拟器中安装 apk 从一个站点下载 但出现以下错误 失败 INSTALL FAILED UID CHANGED 可能是什么问题 只需 rm r 有问题的数据目录即可 如果您在安装时遇到此错误
  • 带有空白白屏的 WebView

    我在 DialogFragment 中有一个 webview 它使用以下方式显示文档和 PDF它可以进行几次尝试 但如果用户尝试频繁打开和关闭对话框 webview 将显示空白屏幕 我已经尝试了所有的线程link1 https stacko
  • Google Android Drive api 在已安装版本上登录失败

    我开发了一个使用 GoogleDrive api 的 Android 应用程序 当处于调试状态或运行调试版本时 应用程序 工作正常 并正确验证附加的谷歌帐户 等 当我构建发行版本时 使用我的签名密钥 并且 安装apk文件 当我运行时 Goo
  • 使用支持库中的 BottomSheet 时如何调暗背景?

    怎样才能让背景像显示的那样变暗here https material design storage googleapis com publish material v 8 material ext publish 0Bzhp5Z4wHba3
  • 在 Android 中更新到 API 26 时,清单合并失败并出现多个错误

    我尝试使用 API 26 更新我的 gradle 安卓工作室2 3 3 但我在编译项目时遇到以下错误 这是我收到的错误的屏幕截图 应用级别build gradle Top level build file where you can add

随机推荐