问题标签 [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 投票
0 回答
592 浏览

kotlin - Kotlin:使用 Moshi 和 Hilt 对通用 JsonAdapter 进行依赖注入

我有一个使用 Hilt 进行依赖注入和 Moshi 进行 JSON 解析的 Android 应用程序。该应用程序向 REST 服务器发出 http 请求,该服务器为所有返回数据的端点返回具有以下格式的 json 响应:

我想提供一个通用的 json 适配器,它可以像这样注入到 DataSource 类中:

例如以下数据类:

在寻找提供 json 适配器的方法时,我最终创建了以下模块:

但是,这不起作用,我收到 [Dagger/MissingBinding] 错误告诉我JsonAdapter<NetworkResponse<Auth>> cannot be provided without an @Provides-annotated method. 谁能看到我做错了什么?

我最近开始学习 Kotlin,之前没有使用过 Hilt 或 Moshi,所以如果我遗漏了一些明显的东西,我深表歉意。

0 投票
1 回答
185 浏览

android - “无法解析方法”@AuthInterceptorOkHttpClient

我正在尝试将 dagger-hilt 集成到我在 android 上的项目中。我已经实现了下面链接中的库和步骤。但是,我无法访问 @AuthInterceptorOkHttpClient 注释。我收到错误“无法解析方法”。为此,我需要添加另一个库。有经验的朋友可以帮忙吗?

https://developer.android.com/training/dependency-injection/hilt-android?hl=ja_jp

0 投票
3 回答
4533 浏览

android - Hilt 在同一活动中创建不同的视图模型实例

最近从 Dagger 迁移到 Hilt 后,我​​开始观察到关于 ViewModel 的非常奇怪的行为。下面是代码片段:

hashCode 的值在所有片段中并不一致。我无法弄清楚我还缺少什么以在活动中生成视图模型的单例实例。

我正在使用单一活动设计并添加了所有必需的依赖项。

0 投票
1 回答
116 浏览

java - 测试中未提供 Hilt 依赖项

我开始使用hilt,在测试时遇到了问题。

这是生成以下错误的代码:

返回:

APPLICATION and COUNTRIES-FEATURE modules contains in INJECTOR gradle-module.

你知道如何解决这个问题吗?

0 投票
1 回答
365 浏览

android - 如何在非 Android 类中使用 HiltViewModelFactory?

如何将 HiltViewModelFactory 注入到非 Android 组件中,如 Conductor 的 Controller.. 等。目前我有这段代码,但它不起作用,说不能提供 HiltViewModelFactory。

0 投票
8 回答
14217 浏览

android - 预期 @AndroidEntryPoint 有一个值。您是否忘记应用 Gradle 插件?

当我在 android 中使用 Hilt 时,Room我遇到了这种错误。

完整的日志在这里:

有人知道解决方案吗?

0 投票
0 回答
2441 浏览

java - Hilt 在一个 android 入口点使用 2 个组件

我是 Hilt(和匕首)的新手,我不确定标题是否真的是我的问题,但它是一个起点,

我正在尝试在回收器视图适配器上使用 hilt,它需要 4 个东西:一个接口、glide(图像加载器)、一个我拥有的类型类和一个字符串标识符,我为它设置了组件和模块并添加了一个标识符的生成器,这似乎可以工作,因为我可以注释适配器构造函数并且它可以编译,但是我需要访问我的片段中的适配器,所以我想我可以用 @Inject 注释适配器字段但是当我添加它时失败(下面的错误),所以这是我的片段的片段

我得到的错误是

所以我可以看到它告诉我它没有为 SentenceViewModelComponent 和 CardAdapterComponent 的 ItemTouchListener 提供方法(我确实添加但无济于事)存在问题,但为什么它们会在这个依赖图中相关?它们都被注入到同一个 CardHolderFragment 中,这是我的 CardAdapterComponent:

如您所见,它依赖于某些模块的第一类工厂

然后项目触摸监听器

然后滑行

然后是组件的依赖项

LayoutIdentifier 是一个具有 RUNTIME 的 RetentionPolicy 的限定符,它限定了我的布局标识符模块

我的 SentenceViewModelComponent 不依赖任何这些

但确实依赖于 SentenceViewModelDependencies

它有一个称为 SentenceTypeAndDescription 的限定符,它注释一个模块 SentenceTypeAndDescriptionModule

除了它们都注入了相同的片段之外,我看不到错误是如何相关的,我应该在这里使用的子组件周围是否缺少一些东西?任何帮助,将不胜感激

0 投票
2 回答
16786 浏览

android - 带刀柄的 android ViewModelFactory

我首先尝试 androidViewModelHiltDI

正如我从下面的链接中了解的那样,要使用运行时值初始化 ViewModel,我应该使用ViewModelFactory

使用 ViewModelFactory

并且要使用带有刀柄的 ViewModel,我应该@ViewModelInject按照以下链接中的说明使用

Hilt 和 Jetpack 集成

但是怎么HiltViewModelFactory呢?

似乎答案在@Assisted但我不知道如何

如何告诉 hilt 我喜欢将存储库接口注入 ViewModel,同时仍然允许 ViewModelFactory 在运行时使用参数初始化 ViewModel?

0 投票
6 回答
13672 浏览

android - Dagger-Hilt:@ViewModelInject 没有注入 MyViewModel 并崩溃?

在探索 Dagger-Hilt 的 ViewModelInject 时,我遵循https://developer.android.com/training/dependency-injection/hilt-jetpack#viewmodels中的示例

我尝试将 ViewModel 注入到我的活动中,如下所示

它崩溃抱怨

我尝试使用视图模型工厂(非注入方法)手动创建 ViewModel,它工作正常。

我在使用中做错了@ViewModelInject什么吗?

0 投票
2 回答
3869 浏览

android - 如何将参数传递给 Hilt 模块?

我开始将 Dagger 应用程序迁移到 Hilt,首先我将 AppComponent 转换为 Hilt 自动生成的 ApplicationComponent。因此,我@InstallIn(ApplicationComponent::class)为与该组件相关的每个模块添加了注释。

现在我收到以下错误:

错误:[Hilt] 所有模块必须是静态的并使用静态提供方法或具有可见的无参数构造函数。

它指向这个模块:

以前在 Dagger 中,可以在构造函数中传递参数。看起来 Hilt 不允许这样做。

如何将参数传递给 Hilt 模块?