android - 使用 Dagger 2 将 ViewModel 注入 Fragment,并带有参数
问题描述
我正在尝试使用单个工厂来创建带有构造函数参数的 ViewModel。我遵循了@matejdro https://github.com/google/dagger/issues/1273公开的匕首问题之一中的建议
但是注射不起作用。
我收到一个错误:“错误:[Dagger/MissingBinding] kotlin.Lazy 不能在没有 @Provides-annotated 方法的情况下提供。”
知道如何解决这个问题吗?我将创建的项目上传到 github:https ://github.com/davida5/daggerViewModelBestPractice
解决方案
这很简单,你应该使用dagger.Lazy
(包括一个导入)而不是kotlin.Lazy
一旦解决了这个问题,您将遇到另一个问题;AFAIK 如果没有相应的合格提供者,您将无法使用合格的依赖项。您有一个合格的UserManager
实例被注入AccountsViewModel
. 添加合格的提供者方法或从AccountsViewModel
.
推荐阅读
- aws-lambda - 无法使用 AWS greengrasssdk 获取事物影子,错误代码为 404
- python - sklearn:使用交叉验证进行递归特征消除有什么好处?
- angular - 我如何通过插件获取 lat long 值,而不是在角度 5 中调用 ionic 中的 Web 服务?
- android - Android Manifest 重复注册活动
- javascript - 在 for 循环中让 vs. var
- jquery - 文本字段中的 jquery 验证
- mysql - 在 IN() 运算符中使用 Mysql 存储函数的返回值
- c# - 使用 SweetAlerts 对话框确认
- javascript - Drive Rest API 未列出特定文件夹
- java - 从 JTextField 替换一个 int