如何在Android Studio Hedgehog金丝雀版中添加Hilt与KSP
正确添加Dagger Hilt与KSP的步骤
你遇到的“Unresolved reference”错误,本质是libs.versions.toml中未正确配置插件元数据,导致alias无法找到对应引用。以下是完整的正确配置流程:
1. 配置项目版本目录文件
在项目根目录的libs.versions.toml中,添加Hilt和KSP的版本及插件定义:
[versions] hilt = "2.48" # KSP版本必须与你的Kotlin版本匹配,示例对应Kotlin 1.9.20 ksp = "1.9.20-1.0.14" [plugins] hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
2. 项目级build.gradle.kts配置
在根目录的build.gradle.kts中引入插件(设为apply false,让子模块按需应用):
plugins { alias(libs.plugins.hilt) apply false alias(libs.plugins.ksp) apply false // 保留你原有的其他项目级插件,比如com.android.application等 }
3. 应用级build.gradle.kts配置
在app模块的build.gradle.kts中应用插件并添加依赖:
plugins { id("com.android.application") id("org.jetbrains.kotlin.android") alias(libs.plugins.hilt) alias(libs.plugins.ksp) } android { // 保留你原有的Android配置,例如compileSdk、defaultConfig等 } dependencies { // Hilt核心依赖 implementation(libs.hilt.android) // Hilt注解处理器,用ksp引入 ksp(libs.hilt.compiler) // 若使用Compose导航的Hilt扩展,可添加: // implementation(libs.hilt.navigation.compose) } // 可选:配置Hilt编译参数(解决部分Android版本的校验问题) ksp { arg("dagger.hilt.android.internal.disableAndroidSuperclassValidation", "true") }
额外排查要点
- 确保
libs.versions.toml中的插件id完全正确:Hilt的id是com.google.dagger.hilt.android,KSP是com.google.devtools.ksp,拼写错误会直接导致引用失败。 - 严格匹配KSP与Kotlin版本,版本不兼容会引发各类编译异常。
- 若仍有问题,尝试清理AS缓存:
File -> Invalidate Caches... -> Invalidate and Restart。
内容的提问来源于stack exchange,提问作者1234567
相关产品推荐
相关产品推荐

