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

Spring Boot集成Square SDK20.1.0报OkHttpClient NoSuchMethodError

问题根因

抛出的java.lang.NoSuchMethodError: okhttp3.OkHttpClient$Builder.callTimeout属于典型的依赖版本冲突报错,和配置的生产/沙箱环境、access_token参数无关:项目运行时实际加载的OkHttp版本过低,callTimeout(long, TimeUnit)是OkHttp 3.12.0版本才新增的API,低版本OkHttp不存在该方法,Square SDK初始化客户端时调用该方法就会触发错误。

兼容版本说明

Square Java SDK 20.1.0.20220616 官方内置依赖的OkHttp版本为 4.9.3,兼容所有3.12.x及以上的OkHttp 3.x、4.x版本,低于3.12.0的版本均无法正常运行该版本SDK。

解决步骤
  • 排查当前生效的OkHttp版本
    Maven项目执行命令mvn dependency:tree | grep okhttp3,Gradle项目执行命令./gradlew dependencies | grep okhttp3,查看输出结果确认实际加载的OkHttp版本,该冲突一般是Spring Boot旧版本、其他第三方依赖传递引入低版本OkHttp导致。
  • 强制指定全局OkHttp版本为兼容版本
    Maven项目在pom.xml的dependencyManagement节点中添加如下配置,锁定版本:
    <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>okhttp</artifactId>
        <version>4.9.3</version>
    </dependency>
    
    Gradle项目在build.gradle中添加版本强制规则:
    configurations.all {
        resolutionStrategy.force 'com.squareup.okhttp3:okhttp:4.9.3'
    }
    
  • 若项目中引入了okhttp-logging-interceptor、okhttp-urlconnection等同属OkHttp生态的依赖,需将这些组件的版本与核心okhttp包版本保持一致,避免其他兼容问题。
  • 清理项目构建缓存,重新编译启动后即可正常初始化SquareClient,你提供的客户端初始化代码本身没有逻辑问题。

内容的提问来源于stack exchange,提问作者Umesh Goti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 16:37:00