android多模块依赖关系,在多模块应用中使用 Hilt

Hilt 代码生成操作需要访问使用 Hilt 的所有 Gradle 模块。编译 Application 类的 Gradle 模块需要在其传递依赖项中包含所有 Hilt 模块和通过构造函数注入的类。

如果多模块项目由常规 Gradle 模块组成,则您可以按照使用 Hilt 实现依赖项注入中的说明使用 Hilt。不过,对于包含动态功能模块 (DFM) 的应用,并不是这样。

在动态功能模块中使用 Hilt

在 DFM 中,通常模块之间相互依赖的方式颠倒过来。因此,Hilt 无法在动态功能模块中处理注释。您必须在 DFM 中使用 Dagger 执行依赖项注入。

您必须使用组件依赖关系来解决 DFM 的这一问题。请按以下步骤操作:

在具有 DFM 所需依赖项的 app 模块(或可由 Hilt 处理的其他任何模块)中声明一个 @EntryPoint 接口。

创建一个依赖于 @EntryPoint 接口的 Dagger 组件。

在 DFM 中照常使用 Dagger。

下面考虑一下使用 Hilt 实现依赖项注入页面中的示例。假设您向项目中添加了一个 login 动态功能模块。您使用一个名为 LoginActivity 的 Activity 实现登录功能。这意味着,您只能从应用组件获取绑定。

对于此功能,您需要具有 authInterceptor 绑定的 OkHttpClient。

首先,创建一个安装在具有 login 模块所需绑定的 ApplicationComponent 中的 @EntryPoint 接口:

Kotlin

// LoginModuleDependencies.kt - File in the app module.

@EntryPoint

@InstallIn(Appl

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值