如何用KSP替代Kapt使用Hilt?依赖配置问题求助
用KSP替代Kapt配置Hilt的正确步骤与问题排查
一、核心前提:版本严格匹配
KSP的版本必须和你的Kotlin版本完全对应,KSP版本命名规则是[Kotlin版本]-[KSP版本号]。比如你项目里用Kotlin 1.9.0,就不能用适配Kotlin 1.9.22的KSP版本,这是绝大多数配置失败的根源。
二、正确的项目级build.gradle配置
替换你当前的项目级配置,统一版本:
plugins { id("com.android.application") version "8.2.2" apply false id("org.jetbrains.kotlin.android") version "1.9.0" apply false id("com.google.dagger.hilt.android") version "2.51" apply false id("com.google.devtools.ksp") version "1.9.0-1.0.13" apply false // 与Kotlin 1.9.0严格匹配 }
三、正确的模块级build.gradle配置
插件与Android配置
plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("com.google.dagger.hilt.android") id("com.google.devtools.ksp") } android { // 如果你用Compose,需要确保kotlinCompilerExtensionVersion和AGP版本兼容 // AGP 8.2.2对应compose compiler 1.5.x系列,比如1.5.11 buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.11" } }
依赖配置(移除冗余项)
dependencies { val hiltVersion = "2.51" implementation("com.google.dagger:hilt-android:$hiltVersion") ksp("com.google.dagger:hilt-android-compiler:$hiltVersion") // 不需要单独添加hilt-compiler,hilt-android-compiler已经包含其功能 }
四、常见错误排查点
- 版本冲突:再次检查KSP、Kotlin、AGP、Hilt的版本兼容性,Hilt 2.51支持Kotlin 1.9.x,没问题,但KSP必须和Kotlin版本一一对应。
- 冗余依赖:你之前添加的
ksp("com.google.dagger:hilt-compiler:$hiltVersion")属于重复依赖,会引发编译冲突,必须移除。 - 缓存问题:修改配置后执行
./gradlew clean build彻底清理缓存,很多奇怪的编译错误都是旧缓存导致的。 - 插件顺序:确保
com.google.devtools.ksp在org.jetbrains.kotlin.android之后应用,你的当前配置顺序是正确的,无需调整。
内容的提问来源于stack exchange,提问作者esmail.unlinea
相关产品推荐
相关产品推荐

