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

启动Spring Boot应用时出现GsonBuilder错误的原因及解决方法

解决Spring Boot运行时Gson的NoSuchMethodError问题

这个问题我之前帮不少开发者排查过,本质就是Gson版本不兼容或者依赖冲突搞出来的事儿,咱们拆解来看:

错误原因

  • Gson版本过低:GsonBuilder.setLenient()这个方法是在Gson 2.3版本才新增的,如果你的项目里用的Gson版本低于2.3,自然找不到这个方法。
  • 依赖版本冲突:项目里可能同时引入了多个不同版本的Gson(比如某个第三方依赖自带了旧版Gson,和你手动引入的新版,或者Spring Boot默认依赖的版本冲突),JVM加载了旧版的Gson类,导致方法缺失。
  • Spring Boot依赖传递覆盖:Spring Boot的一些starter(比如spring-boot-starter-web)会默认引入兼容的Gson版本,但如果你手动在pom.xml/build.gradle里指定了更低的Gson版本,就会覆盖掉默认的兼容版本,引发错误。

解决办法

1. 统一并升级Gson版本

先排查项目里的依赖树,找出所有Gson的引入来源:

  • Maven项目执行命令:mvn dependency:tree
  • Gradle项目执行命令:gradle dependencies

然后在依赖管理里强制指定一个2.3及以上的稳定版本(比如2.10.1,这是目前比较新的稳定版):

Maven示例

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.10.1</version>
    </dependency>
  </dependencies>
</dependencyManagement>

Gradle示例

dependencyResolutionManagement {
  resolutions {
    force 'com.google.code.gson:gson:2.10.1'
  }
}

2. 排除冲突的旧版Gson

如果是某个第三方依赖带进来的旧版Gson,直接在该依赖里排除Gson:

Maven示例

<dependency>
  <groupId>第三方库的groupId</groupId>
  <artifactId>第三方库的artifactId</artifactId>
  <exclusions>
    <exclusion>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
    </exclusion>
  </exclusions>
</dependency>

3. 对齐Spring Boot版本

如果你的Spring Boot版本比较老旧,建议升级到稳定的新版本(比如2.7.x或者3.x系列),新版本的Spring Boot会默认依赖兼容的Gson版本,能减少这类依赖冲突问题。

控制台错误信息

. ____ _ __ _ _ /\ / ' __ _ () __ __ _ \ \ \ \ ( ( )__ | '_ | '_| | ...

内容的提问来源于stack exchange,提问作者A j

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:31:17