问题标签 [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 回答
210 浏览

android - Android 像 Java 一样实现工厂设计模式

如何使用 java 示例代码使用 Android 和 Hilt/Dagger 的工厂方法。这种设计模式在 Android Hilt/Dagger 中是否可行以及如何实现。我在网上找不到好的解决方案

谢谢约翰

0 投票
1 回答
2623 浏览

android - 从 Fragment 调用 Hilt-Dagger ViewModel

我正在使用ViewModel更新操作栏中的标题

共享视图模型

MainActivity 观察者

使用下面的代码似乎在Fragment(在调试器中检查)创建了一个新实例:

但似乎以这种方式工作

文章参考

这应该以这种方式完成还是我做错了什么?

谢谢!

0 投票
2 回答
3569 浏览

android - Hilt using in android library

I would like to try Hilt DI in the android library.

It is a dependency on another project, with its own submodule. The very first problem I've encountered is the requirement of marking Application with @HiltAndroidApp. Now I do not have anything that extends Application in my library ofc but would like to utilize Hilt and its predefined components.

Is it possible or should I go with Dagger only in such a case? I've found a solution for Dagger, where library dependency injection is made totally independently (the client is unaware of the library's DI): Dagger solution, would love to hear any opinion on that, maybe someone already put a great effort into that issue and can share his insights.

0 投票
1 回答
2272 浏览

android - Hilt:通过 viewModels():RuntimeException:无法创建类 ProductsListViewModel 的实例

所有build.gradle文件都有:

Root 的 build.gradle:

应用程序的 build.gradle:

我的应用程序:

api模块:

ProductsListViewModel:

基础视图模型:

产品列表片段:

产品API:

应用模块:

存储库模块:

ProductsRepositoryImpl:

ProductsRemoteDataSource:

主要活动:

错误:

0 投票
1 回答
1001 浏览

android - DaggerApp_HiltComponents_ApplicationC.java 编译时错误 - 找不到符号

我正在尝试将 Hilt 集成到我的项目中,但我无法通过初始配置。到目前为止,我按照官方文档一步一步添加了插件和依赖项。一旦我用 标记Application@HiltAndroidApp,构建就会失败并出现以下错误:

我检查了生成的文件,发现了一些麻烦的方法:

我对 Dagger 和 Hilt 还很陌生,所以我不知道这可能来自哪里。我认为这可能是一个依赖问题,但我没有得到任何运气。我在项目中导入了一些外部模块,这是我的 gradle:

项目/build.gradle

应用程序/build.gradle

依赖项.gradle

我希望有人至少能指出我正确的方向,现在我盲目地试图猜测问题出在哪里。谢谢。

0 投票
2 回答
658 浏览

android - 如何防止 Hilt 从库中选择依赖项?

好吧,让我们把这个简单化。

我创建了一个简单的库my-network-library,其中包含两个类。第一个是名为 Hilt 的模块BaseNetworkModule

第二个是一个简单的类。

现在我想MyAwesomeClass在我的一个应用程序中使用。所以我在应用程序中添加了依赖项。

我也有一些网络调用实现,我不想使用OkHttpClientfrom my-network-library。所以我在应用程序中创建了一个模块来获取我自己的OkHttpClient.

现在正在低于错误。

错误:[Dagger/DuplicateBindings] okhttp3.OkHttpClient 被绑定多次:

我知道这是因为在 中@Provides声明my-network-library,但我没有指定includes注释@ModuleBaseNetworkModule. 可以使用@Qualifier注释解决该问题,但 IMO,这将是一种解决方法。

所以我的问题是

  • includes为什么库模块的依赖项会在不使用of 的情况下进入应用程序模块@Module
  • 如何告诉 Hilt “不要在外部库中寻找 @Provides(gradle 依赖项)?” 除非我用@Module(includes = XXXModule)
0 投票
0 回答
483 浏览

android - 使用 Android Dagger Hilt 在单个流中跨片段共享数据

TL;DR:如何使用 Dagger/Hilt 组件而不是共享视图模型在单个流中共享数据?


我正在尝试采用Android 文档中显示的方法,该方法使用手动依赖注入到 Dagger-Hilt 依赖注入,使用MVVM-Repository 模式

这是我的应用程序的登录流程iamge

我有2个片段:

  • UsernameFragment - 它使用 UserNameViewModel,
  • PasswordFragment - 它使用 PasswordViewModel。

我知道他们之间的数据可以通过以下方式共享:

  • 共享视图模型,
  • 父活动(可能有点过时了)。

然而,使用共享视图模型意味着紧密耦合这两个片段。(假设我将再次使用这两个片段,但在注册流程中,添加了一些额外的屏幕 - 例如 PersonalInfoFragment。所以我决定为每个片段设置独立的视图模型)。

但是,如果您阅读上面链接的 Google 文档,您会注意到他们在“登录容器”中使用了类似 l oginData 的对象。在那种情况下,它的用途对我来说很清楚。

但是,当他们使用 Dagger2 解释相同的示例时他们默默地将共享 loginData 的概念丢弃在“登录容器”(在这种情况下为 LoginComponent)中的流中。

如果有人帮助我,我将不胜感激,如何实现 ManualDI 中显示的相同目标(“登录容器”中的共享 userData),但使用 Hilt 或 Dagger。

PS .Using Android NavigationUI 我创建了一个嵌套图 - 它只需要 2 个片段,因此我确信,使用图范围内的视图模型将确保我每次用户进入此登录流程时,视图模型都是“干净的” (重新创建)。但是它并没有解决“登录容器”中的共享资源问题

编辑修正了附件图片中的一个编辑文本名称(“密码”)。

0 投票
1 回答
1868 浏览

android - 如何在 Dagger Hilt 中获得 MVP?

我无法使用 Model View Presenter(MVP) Hilt 方法编译代码。

我收到此错误: /MotionPoC/app/build/generated/source/kapt/debug/com/aria/motionpoc/di/MotionApp_HiltComponents.java:145:错误:[Dagger/MissingBinding] com.aria.motionpoc.coupon.MainActivity如果没有 @Inject 构造函数或 @Provides-annotated 方法,则无法提供。此类型支持成员注入,但不能隐式提供。

代码本身:

MainActivity.kt

MainPresenter.kt

主模块.kt

运动应用程序.kt

解决了!感谢您的帮助曼努埃尔体内! https://github.com/riodext/AndroidDaggerHiltMVP

0 投票
0 回答
446 浏览

android - 片段 ViewModel 的 Android Hilt 范围

在文档中,您可以看到此图: 在此处输入图像描述

所以有这个活动ViewModel的“ActivityRetainedScope”,但是片段ViewModel呢?在这种情况下使用的正确范围是什么?对于组件同样的问题,我没有看到片段 ViewModel 的组件?

0 投票
0 回答
1580 浏览

android - (预计@AndroidEntryPoint 有一个值。你忘记应用Gradle 插件了吗?) 使用带有PESDK 的dagger hilt

我正在使用带有 PESDK(照片编辑器 sdk)GIT 照片编辑器 SDK的匕首刀柄

错误

在添加依赖项并更改设置它所需的 PESDK 之前,一切都构建良好