# Issue using gson in gradle plugin

**URL:** <https://discuss.gradle.org/t/issue-using-gson-in-gradle-plugin/45927>\
**Category:** Help/Discuss\
**Created:** [June 29, 2023, 3:14pm UTC](https://discuss.gradle.org/t/issue-using-gson-in-gradle-plugin/45927 "2023-06-29T15:14:46Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ftomassetti](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/ftomassetti/32/10420_2.png) [@ftomassetti](https://discuss.gradle.org/u/ftomassetti)\
**Post date:** [June 29, 2023, 3:14pm UTC](https://discuss.gradle.org/t/issue-using-gson-in-gradle-plugin/45927/1 "2023-06-29T15:14:47Z")

</div>

I am indirectly importing gson in a gradle plugin. I check the dependencies and everywhere I am using the same version of gson: 2.10.1 (the latest at the time of writing).

Yet, when I use my plugin I get the infamous exception:

```gradle
java.lang.NoSuchMethodError: 'com.google.gson.JsonElement com.google.gson.internal.Streams.parse(com.google.gson.stream.JsonReader)'

```

I suppose that gradle is coming with its own version of gson and that it is quite old. Am I right? Any idea on how to solve this?

---

<div class="post-metadata">

**Author:** ![Vampire](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/vampire/32/9082_2.png) [@Vampire](https://discuss.gradle.org/u/Vampire)\
**Post date:** [June 29, 2023, 3:43pm UTC](https://discuss.gradle.org/t/issue-using-gson-in-gradle-plugin/45927/2 "2023-06-29T15:43:57Z")

</div>

Unless you use an ancient Gradle version, probably not.  
That method is there since gson 2.4, that means since Gradle 3.1 the method should be in the built-in gson:

```plaintext
$ find ~/.gradle/wrapper/dists/ -type f -name '*gson*' | cut -d / -f 9- | grep -v http-client
gradle-1.12/lib/plugins/gson-2.2.4.jar
gradle-2.1/lib/plugins/gson-2.2.4.jar
gradle-2.1/lib/plugins/gson-2.2.4.jar
gradle-2.11/lib/plugins/gson-2.2.4.jar
gradle-2.12/lib/plugins/gson-2.2.4.jar
gradle-2.13/lib/plugins/gson-2.2.4.jar
gradle-2.14.1/lib/plugins/gson-2.2.4.jar
gradle-2.2/lib/plugins/gson-2.2.4.jar
gradle-2.8/lib/plugins/gson-2.2.4.jar
gradle-3.0/lib/plugins/gson-2.2.4.jar
gradle-3.1/lib/plugins/gson-2.7.jar
gradle-3.2.1/lib/plugins/gson-2.7.jar
gradle-5.6.2/lib/plugins/gson-2.8.5.jar
gradle-5.6.4/lib/plugins/gson-2.8.5.jar
gradle-6.0/lib/plugins/gson-2.8.5.jar
gradle-6.9/lib/plugins/gson-2.8.5.jar
gradle-6.9.3/lib/plugins/gson-2.8.5.jar
gradle-7.3.2/lib/plugins/gson-2.8.6.jar
gradle-7.4.2/lib/plugins/gson-2.8.6.jar
gradle-7.5.1/lib/plugins/gson-2.8.9.jar
gradle-7.6.1/lib/plugins/gson-2.8.9.jar
gradle-8.0/lib/plugins/gson-2.8.9.jar
gradle-8.0.2/lib/plugins/gson-2.8.9.jar
gradle-8.1/lib/plugins/gson-2.8.9.jar
gradle-8.1.1/lib/plugins/gson-2.8.9.jar

```

---

<div class="post-metadata">

**Author:** ![ftomassetti](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/ftomassetti/32/10420_2.png) [@ftomassetti](https://discuss.gradle.org/u/ftomassetti)\
**Post date:** [June 29, 2023, 4:20pm UTC](https://discuss.gradle.org/t/issue-using-gson-in-gradle-plugin/45927/3 "2023-06-29T16:20:03Z")

</div>

That is strange, as I am using gradle 8.1.1

---

<div class="post-metadata">

**Author:** ![Vampire](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/vampire/32/9082_2.png) [@Vampire](https://discuss.gradle.org/u/Vampire)\
**Post date:** [June 29, 2023, 5:06pm UTC](https://discuss.gradle.org/t/issue-using-gson-in-gradle-plugin/45927/4 "2023-06-29T17:06:30Z")

</div>

Can you share a build `--scan`?  
Maybe it can shed some light.

---

<div class="post-metadata">

**Author:** ![ftomassetti](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/ftomassetti/32/10420_2.png) [@ftomassetti](https://discuss.gradle.org/u/ftomassetti)\
**Post date:** [June 30, 2023, 8:55am UTC](https://discuss.gradle.org/t/issue-using-gson-in-gradle-plugin/45927/5 "2023-06-30T08:55:06Z")

</div>

I solved the problem by taking a dependency (which is using gson 2.10.1) and changing it to produce a fat jar with gson relocated.

However this is the scan, maybe the problem can be uncovered and I can avoid building the fatJar with relocation for that dependency, as it is a bit awkward.

[https://scans.gradle.com/s/joygcg4hahqtc](https://scans.gradle.com/s/joygcg4hahqtc)

---

<div class="post-metadata">

**Author:** ![Vampire](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/vampire/32/9082_2.png) [@Vampire](https://discuss.gradle.org/u/Vampire)\
**Post date:** [June 30, 2023, 2:39pm UTC](https://discuss.gradle.org/t/issue-using-gson-in-gradle-plugin/45927/6 "2023-06-30T14:39:48Z")

</div>

> as it is a bit awkward

that are fat jars always 😃

That build scan is not of the failing build.  
Can you share that of the failing build?  
Or as it seems this is about FOSS work, maybe you can even share the failing project.
