问题标签 [dagger-hilt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1021 浏览

android - 如何使用 Hilt 在 Room TypeConvertors 中注入 Moshi/Gson?

我正在尝试刀柄,我想注入 moshi 进行序列化和反序列化。

这是一个来自 github Repo 的代码示例,它没有使用 di:

我正在尝试用@AndroidEntryPoint/@EntryPoint 尝试随机的东西来现场注入这样的注释,显然它不起作用。

0 投票
1 回答
3060 浏览

android - @dagger.hilt.android.qualifiers.ApplicationContext android.content.Context 不能在没有@Provides-annotated 方法的情况下提供

我正在做一个相对论简单的 Hilt 实现。我已经设置好了,我似乎无法解决这个错误:

[Dagger/MissingBinding] @dagger.hilt.android.qualifiers.ApplicationContext android.content.Context 不能在没有@Provides-annotated 方法的情况下提供。

这是我的代码:

我是 Hilt 的新手——有什么想法吗?

0 投票
1 回答
4744 浏览

android - Android:匕首柄,注入导航组件

我正在尝试为我的 navController 提供匕首柄。但是我使用的方法不起作用。我想提供 navController 以便通过构造函数注入将其注入我的片段中。

没有 Di.Module,FragmentClass

当前方法,Di.Module

我还创建了 FragmentFactory 类,以便通过构造函数注入我的依赖项。我知道这(context as AppCompatActivity)是这里的问题,但我不知道正确的解决方案..

我感谢每一个帮助,谢谢!

错误

原因:java.lang.ClassCastException: com.example.app.App 无法转换为 androidx.appcompat.app.AppCompatActivity

0 投票
1 回答
316 浏览

android - Android Hilt、Retrofit2 和属性文件问题

我有一个我很确定很常见的情况,但我在任何教程中都没有找到解决方案。也许我以完全错误的方式处理这个问题。

我有一个提供改造服务的模块:

我希望可以通过属性文件配置基本 URL。要使用属性文件,我需要 Context 以便可以访问 AssetManager:

所以我可以使用@ApplicationContext 注释:

这应该适用于获取属性,但问题是我有另一个模块提供一个类来处理属性文件:

所以我想使用那个类,但我不能将 PropertiesUtil 注入另一个提供方法。

我接近这一切都错了吗?

0 投票
1 回答
158 浏览

android - 数据库更改时 UI 不更新

我正在使用 Android Architecture Components 编写一个应用程序,最初基于著名的文章,但是现在已经过时且不准确,因此基于其他文档、文章和视频,我使用最新的组件构建了一些东西,结果在一个非常简单的架构,代码很少。

这个想法是应用程序从其表为空开始,然后从 Firestore 数据库中读取以获取其数据,将数据存储在本地 SqlLite 数据库中(使用 Room)并显示更新的数据。每当在 Firestore 上更新数据时,都应该在 SqlLite 中更新数据并更新 UI。

但是,我的 UI(现在只是一个文本框)仅在应用程序启动时更新,并且在数据库被修改后永远不会更新。

波特罗道

Portero存储库

按钮视图模型

按钮片段

所有依赖注入似乎都正常(没有 NPE),我什至检查了 Fragment 和 ViewModel 本身的 ViewModel 实例是否相同,并且通过 Room 的持久性是正确的;当我更新 Firestore 时,新数据实际上被保存到 SqlLite 中。此外,logcat 中没有异常或错误。但是UI没有更新。

0 投票
3 回答
2748 浏览

android - Hilt ClassCastException:无法将 ViewComponentManager$FragmentContextWrapper 强制转换为 AppCompatActivity

我有这段代码,我在适配器中单击 viewHolder 项目时显示对话框片段

最近我正在迁移到 Hilt,我得到了类转换异常,看起来 Hilt 包装了上下文,我无法让父Activity获得所需的FragmentManager来显示对话框

0 投票
0 回答
923 浏览

android - 由于 Dagger Hilt 迁移上的 MissingBinding,Gradle 构建不断失败

我正在尝试将我的项目迁移到Dagger Hilt并面临缺少绑定的问题。我正在关注谷歌的代码实验室来实现这一点。

这是构建失败的地方:

这些是项目的相关部分:

应用组件:

应用模块:

应用模块:

视图模型模块:

活动范围:

我意识到我必须使用@Provides注释AndroidInjector,但我不知道在哪里以及如何。任何帮助表示赞赏。

非常感谢你。

0 投票
3 回答
4028 浏览

android - 无法使用 Hilt 注入 workmanager 构造函数

我正在开发一个 Android 应用程序。我正在尝试将 hilt 与 workmanager 构造函数一起使用,但它不起作用并给了我这个错误:

这是工人阶级:

应用模块:

应用类:

build.gradle(应用程序):

build.gradle(项目):

在这种情况下我做错了什么吗?如果是,请帮助我

0 投票
1 回答
3742 浏览

android - Hilt:注入应用程序范围的存储库单例

我对 Dagger 比较陌生,我刚开始使用 Hilt。我想要的是注入一个应用程序范围的存储库(意味着它需要在任何地方都是相同的对象)到ViewModel. 存储库将用于检索用户、身份验证令牌和类似的东西。这是我能得到的最接近的:

这样一切正常,使用调试我可以确认每次ViewModel使用相同的实例UserRepository注入。问题是_user第二null次(例如视图被销毁并重新创建)getUser()被调用。我不知道我是在 kotlin 方面犯了一些愚蠢的错误,还是在 Hilt 方面犯了一个愚蠢的错误。

知道发生了什么吗?

0 投票
1 回答
1599 浏览

android - Android:找不到符号类 DataBinderMapperImpl。找不到 android:state_checked 的吸气剂

我正在尝试将双向数据绑定与匕首柄和视图模型结合使用。但是,我的问题是我的构建失败,错误...

错误代码

看起来 Android 无法创建我的数据绑定 xml 的 impl 文件。

这是我的代码:

XML 文件,包含在我的 fragment_calibrate_repair_message 中

BaseFragment,dataBinding在这里初始化

电子邮件片段

CalibrateRepairMessageFragment,这里出现问题!

视图模型

我希望代码不要太多或混乱。我试图删除对我的问题不重要的所有内容(例如布局内容或不必要的功能)。在我的 build.gradle 中启用了数据绑定。

知道这个问题已经被问过了,但没有人使用匕首,我认为这是我的问题?我感谢每一个帮助,谢谢!

编辑

我已经更改了 BaseFragment 类和 CalibrateMessageFragment 类以附加我的视图模型。不幸的是,这并没有解决我的问题......

  • 新的 BaseFragment

  • 校准消息片段

编辑 2

好的,我更进一步发现,这com.google.android.material.card.MaterialCardView并没有为android:state_checked? 我的错误至少说明了以下内容:

但这没有任何意义,因为在这里您可以看到 CardView 为 isChecked 提供了一个 getter..