Android Kotlin项目中Dagger Hilt与KSP适配问题:无法解析符号‘Inject’
解决Dagger Hilt注解迁移KSP后无法识别的问题
问题根源
你的配置缺失了Hilt核心依赖与Android插件,同时未确保Hilt组件版本统一,这直接导致@Inject、@Module等注解无法被识别。
修复步骤
1. 模块级build.gradle.kts补全Hilt插件
在plugins块中添加Hilt Android插件:
plugins { id("com.android.application") id("org.jetbrains.kotlin.android") version "1.9.20" id ("com.google.relay") version "0.3.10" kotlin("plugin.serialization") version "1.9.0" id ("com.google.devtools.ksp") version "1.9.20-1.0.14" id("com.google.dagger.hilt.android") version "2.48.1" // 新增Hilt Android插件 }
2. 补充Hilt核心依赖
在dependencies块中添加Hilt核心implementation依赖(注解定义的来源):
dependencies { // 原有依赖保持不变... // 新增Hilt核心依赖 implementation("com.google.dagger:hilt-android:2.48.1") // 若使用Compose导航可添加(可选) implementation("androidx.hilt:hilt-navigation-compose:1.1.0") // 已配置的KSP依赖保留 ksp("com.google.dagger:dagger-compiler:2.48.1") ksp("com.google.dagger:hilt-compiler:2.48.1") ksp("androidx.room:room-compiler:2.6.0") ksp("androidx.hilt:hilt-compiler:1.1.0") // 原有测试依赖保持不变... }
3. 项目级build.gradle.kts添加Hilt插件声明
在plugins块中添加Hilt插件的全局声明:
plugins { id("com.android.application") version "8.1.2" apply false id("org.jetbrains.kotlin.android") version "1.9.20" apply false id("com.google.devtools.ksp") version "1.9.20-1.0.14" apply false id("com.google.dagger.hilt.android") version "2.48.1" apply false // 新增Hilt插件全局声明 }
4. 版本一致性校验
确保所有Hilt相关依赖(hilt-android、hilt-compiler等)版本统一为2.48.1,同时KSP版本1.9.20-1.0.14与Kotlin版本1.9.20完全匹配。
5. 清理重建项目
执行以下操作:
- 点击
Build > Clean Project - 点击
Build > Rebuild Project - 同步Gradle配置(右上角Sync按钮)
额外检查
- 确认你的Application类添加了
@HiltAndroidApp注解(Hilt初始化必备):
@HiltAndroidApp class YourApplication : Application() { // 业务代码 }
- 检查注解导入是否正确,避免误导入其他库的同名注解
内容的提问来源于stack exchange,提问作者Alan Escamilla
相关产品推荐
相关产品推荐

