Android Hilt的模块配置

Hilt是Dagger的封装,主要目的是简化依赖注入在Android中的使用。配置Hilt依赖库往往会出现一些问题。在本文中将详细介绍Hilt依赖库的配置。首先,创建一个Android项目,在该项目下会自动创建一个App模块。也可以在这个Android项目下,另外创建自定义的应用模块。要配置Hilt依赖库,需要考虑三方面的配置内容。

一、配置libs.versions.toml

libs.versions.toml文件提供了Gradle 的一种版本目录(Version Catalog)功能,用于集中管理项目中的依赖版本和插件版本。在这个文件中,需要分别在versionslibrariesplugins下分别增加如下内容:

typescript 复制代码
[version]
hilt = "2.57.1"

[libraries]
hilt-compiler = {group= "com.google.dagger","name"="hilt-android-compiler",version.ref = "hilt"}
hilt-android = {group = "com.google.dagger",name= "hilt-android",version.ref = "hilt"}

[plugins]
hiltAndroid={id="com.google.dagger.hilt.android",version.ref = "hilt"}

二、配置项目的顶层build.gradle.kts

在顶层项目的build.gradle.kts增加如下内容:

typescript 复制代码
plugins {
   ......
    alias(libs.plugins.hiltAndroid) apply false
    alias(libs.plugins.google.devtools.ksp)
}

三、配置应用模块的build.gradle.kts

最后在应用模块的build.gradle.kts配置如下内容:

typescript 复制代码
plugins {
    ......
    alias(libs.plugins.google.devtools.ksp)
    alias(libs.plugins.hiltAndroid)
}
......
dependencies {
    implementation(libs.hilt.android)
    ksp(libs.hilt.compiler)
    ......
}

四、测试

在模块中创建一个应用程序,如下:

typescript 复制代码
@HiltAndroidApp
class SomeApp: Application() {
    override fun onCreate() {
        super.onCreate()
    }
}

然后,将该SomeApp配置到AndroidManifest.xml的application元素中,类似如下内容:

typescript 复制代码
<application
   android:name=".SomeApp"
   ....>
   
</application>  

参考文献:

使用Hilt实现依赖项注入 https://developer.android.google.cn/training/dependency-injection/hilt-android?hl=zh-cn EB/OL

相关推荐
lunzi_08261 小时前
【学习笔记】《Python编程 从入门到实践》第9章:类、继承、组合与面向对象编程
笔记·python·学习
yewq-cn1 小时前
Android Log System
android
神明不懂浪漫1 小时前
【第二章】Java中的数据类型,运算符与程序逻辑控制
java·开发语言·经验分享·笔记
05候补工程师2 小时前
【408考研复习】数据结构核心笔记:字符串模式匹配与内部排序算法全解析
数据结构·经验分享·笔记·考研·算法·排序算法
问心无愧05132 小时前
ctf show web入门107
android·前端·笔记·android studio
chase。2 小时前
【学习笔记】面向机器人食物舀取的 spillage-aware 引导扩散策略
笔记·学习·机器人
AI科技星2 小时前
第三卷:质数王朝志 第四章:RSA护国玄阵,质数锁天地,一数镇万法
android·人工智能·架构·概率论·学习方法
必胜刻2 小时前
Go项目实战:使用Ollama本地部署大模型实现AI智能笔记生成
人工智能·笔记·ai·语言模型·golang
星恒随风2 小时前
C++ 内存管理详解:从内存分区、malloc/free 到 new/delete
开发语言·c++·笔记·学习
江屿风2 小时前
C++图论基础拓扑排序经典OJ题流食般投喂
开发语言·c++·笔记·算法·图论