You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android项目从Kapt迁移到KSP时遭遇NoSuchMethodError错误求助

Android项目从Kapt迁移到KSP时遭遇NoSuchMethodError错误求助

看起来你遇到了典型的KSP与依赖库版本不兼容导致的问题,我来帮你一步步排查解决:

错误原因分析

你日志里的NoSuchMethodError: 'kotlin.KotlinVersion com.google.devtools.ksp.processing.SymbolProcessorEnvironment.getKspVersion()'是因为Room 2.6.1的KSP处理器需要调用KSP 1.0.13及以上版本才新增的API,但你当前使用的KSP版本是1.9.0-1.0.12,版本过低,导致方法找不到。

具体修复步骤

  1. 升级KSP到兼容版本
    你的Kotlin版本是1.9.0,对应的KSP需要使用前缀为1.9.0-的版本,且版本号不低于1.0.13。修改你的versions块中的kspPlugin版本:

    kspPlugin = "1.9.0-1.0.15"
    

    这个版本和Kotlin 1.9.0完全兼容,且满足Room 2.6.1对KSP API的要求。

  2. 清理重复依赖,避免冲突
    我注意到你在依赖声明里重复定义了Work Runtime的依赖(androidx-work-runtime-ktx和androidx-work-runtime-ktx-v271),这两个版本都是2.10.0,属于冗余依赖,容易引发潜在冲突。建议删除[libraries]中的androidx-work-runtime-ktx-v271,统一使用androidx-work-runtime-ktx。

  3. 移除残留的Kapt配置
    你现在的项目里还残留了Kapt的插件和配置,这会和KSP产生冲突,必须清理:

    • 在settings.gradle的[plugins]块中,删除jetbrains-kotlin-kotlin这一项(也就是Kapt插件)
    • 在模块的build.gradle的plugins中,删除alias(libs.plugins.jetbrains.kotlin.kotlin)
    • 同时删除模块build.gradle里的kapt { correctErrorTypes = true }配置块
  4. 清理缓存并重建项目
    做完以上修改后,先执行./gradlew clean清理构建缓存,然后点击Android Studio的Build -> Rebuild Project重新构建,确保所有配置生效。

额外注意事项

  • 确保所有原来使用kapt引入的注解处理器,都替换成了ksp,比如你已经将Room、Hilt的编译器依赖从kapt改成ksp,这部分是正确的,不要出现混合使用的情况。
  • KSP的版本命名规则是[Kotlin版本]-[KSP版本],必须保证前半部分和你项目中的Kotlin版本完全一致,否则会出现兼容性问题。

备注:内容来源于stack exchange,提问作者Taki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 08:48:07