第1章:Hilt项目初始化与依赖配置
1.1 整体流程概述
Hilt 是 Google 基于 Dagger 的轻量级依赖注入框架,专为 Android 设计。在项目中使用 Hilt 需要完成以下初始化步骤:
- 在项目级
build.gradle中添加 Hilt Gradle 插件 classpath - 在应用级
build.gradle中声明 Hilt 插件与核心依赖 - 启用注解处理器(kapt 或 ksp)
- 同步 Gradle 项目,完成基础环境搭建
- (可选)创建带有
@HiltAndroidApp注解的 Application 类
下面通过流程图直观展示这一链条:
1.2 添加 Hilt Gradle 插件
在项目根目录的 build.gradle(Project 级别)中,配置 Hilt 插件的 classpath:
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.50'
}
}
注意:版本号务必与 Hilt 库版本保持一致。建议查看 官方 Release Notes 获取最新稳定版。
1.3 声明 Hilt 模块依赖
在应用模块的 build.gradle(Module: app)顶部应用插件:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'dagger.hilt.android.plugin'
// 如果使用 kapt 或 ksp,参考 1.4 节
然后在 dependencies 块中加入核心库和编译器:
dependencies {
implementation "com.google.dagger:hilt-android:2.50"
kapt "com.google.dagger:hilt-compiler:2.50"
// 可选的扩展库:Navigation Compose 集成等
implementation "androidx.hilt:hilt-navigation-compose:1.2.0"
}
这里使用 kapt 作为示例;若选用 KSP,请见下方对比。
1.4 启用 kapt 或 ksp
Hilt 编译器需要注解处理器参与。目前有两种主流选择:kapt(Kotlin Annotation Processing Tool)和 ksp(Kotlin Symbol Processing)。下表列出主要差异:
| 特性 | kapt | ksp |
|---|---|---|
| 处理速度 | 较慢(生成 Java stubs) | 更快(直接操作符号) |
| Gradle 配置 | apply plugin: 'kotlin-kapt' | apply plugin: 'com.google.devtools.ksp' |
| Hilt 依赖 | kapt "com.google.dagger:hilt-compiler:2.50" | ksp "com.google.dagger:hilt-compiler:2.50" |
| 推荐场景 | 兼容性优先 | 新项目、构建速度敏感 |
启用 kapt:
- 在应用级
build.gradle顶部添加apply plugin: 'kotlin-kapt'。 - 将编译器依赖改为
kapt "…"(见1.3示例)。
启用 ksp:
- 在项目级
build.gradle的dependencies中添加 KSP 插件 classpath:classpath "com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin:2.0.0-1.0.22" - 在应用级
build.gradle顶部添加apply plugin: 'com.google.devtools.ksp'。 - 将编译器依赖改为
ksp "com.google.dagger:hilt-compiler:2.50"。
💡 选择建议: 如果项目已使用 kapt 且迁移成本高,kapt 仍然可用;新项目推荐 KSP,构建速度提升显著(尤其在增量编译时)。
1.5 同步项目
完成上述配置后,Gradle 会提示同步。点击 Android Studio 工具栏的 Sync Now 按钮,或通过命令行同步:
./gradlew assembleDebug
同步成功后,Hilt 的基础依赖便就绪。下一步即可创建 Application 子类并添加 @HiltAndroidApp 注解。
⚠️ 常见错误:
- 忘记在项目级
build.gradle添加 Hilt 插件 classpath → 报错Plugin with id 'dagger.hilt.android.plugin' not found - kapt/ksp 与 Hilt 编译器版本号不匹配 → 建议始终使用相同的 Hilt 版本号
- Android Gradle Plugin(AGP)版本过低导致 KSP 不兼容 → 需升级 AGP 至 8.2+