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

Android KSP报错:找不到Guava的buildOrThrow()方法

解决KSP中Guava版本冲突导致的NoSuchMethodError问题

1. 定位引入旧版Guava的依赖

  • 执行Gradle依赖分析命令,生成KSP配置下的依赖树,精准定位问题:
    ./gradlew app:dependencies --configuration kspDebugClasspath
    
    (若为Release环境,替换kspDebugClasspath为kspReleaseClasspath)
  • 从输出结果中筛选com.google.guava:guava相关条目,找出版本低于33.3.1-android的依赖,记录其所属的父依赖。

2. 排除旧版Guava依赖

找到问题父依赖后,在对应模块的build.gradle.kts中排除其自带的旧版Guava,示例:

implementation("com.example:problem-dependency:x.x.x") {
    exclude(group = "com.google.guava", module = "guava")
}

3. 强制所有配置使用指定Guava版本

在根目录build.gradle.kts中,确保**所有配置(包括KSP的注解处理器路径)**都强制使用目标版本:

allprojects {
    configurations.all {
        resolutionStrategy {
            force("com.google.guava:guava:33.3.1-android")
            // 若存在guava-jre变体,同样强制版本
            force("com.google.guava:guava-jre:33.3.1")
        }
    }
}

4. 清理缓存并重新构建

  • 清理Gradle缓存并刷新依赖:
    ./gradlew clean build --refresh-dependencies
    
  • 重启IDE,避免IDE缓存残留干扰构建结果。

额外排查方向

  • 升级KSP插件到最新兼容版本,部分旧版KSP可能内置了旧版Guava:
    plugins {
      id("com.google.devtools.ksp") version "1.9.20-1.0.14" // 替换为与你的Kotlin版本匹配的最新KSP版本
    }
    
  • 确认所有模块的JVM 17配置生效,检查根目录和模块的Java工具链配置:
    java {
      toolchain {
        languageVersion.set(JavaLanguageVersion.of(17))
      }
    }
    

内容的提问来源于stack exchange,提问作者Rofie Sagara

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 07:52:33