NoSuchMethodError Ausnahme bei der Verwendung von com.google.common.base.Splitter
Ich versuche, com.google.common.base.Splitter wie folgt
Iterable<String> segs = Splitter.on("/").split("one/two/three/four/five");
for (String seg : segs) {
System.out.println(seg);
}
Jedoch, sehe ich die folgende Ausnahme:
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Platform.precomputeCharMatcher(Lcom/google/common/base/CharMatcher;)Lcom/google/common/base/CharMatcher;
at com.google.common.base.CharMatcher.precomputed(CharMatcher.java:664)
at com.google.common.base.CharMatcher.<clinit>(CharMatcher.java:71)
at com.google.common.base.Splitter.<init>(Splitter.java:107)
at com.google.common.base.Splitter.on(Splitter.java:171)
at Test.main(Test.java:30)
Hat jemand eine Idee, was mache ich hier falsch?
InformationsquelleAutor der Frage mip | 2011-11-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das gleiche problem.
Es stellte sich heraus, dass ich eine ältere version von Guave.
Gehen Sie zu dieser website:https://code.google.com/p/guava-libraries/, und laden Sie eine neuere version.
Durch die Art und Weise,google-collections wurde umbenannt zu Guave.
InformationsquelleAutor der Antwort Sam003
Hinzufügen einer Abhängigkeit Guave mit Maven, verwenden Sie die folgende:
Hinzufügen einer Abhängigkeit mit Gradle:
InformationsquelleAutor der Antwort Indrajeet Gour
Dein problem ist, dass eine andere Bibliothek kann auch enthalten, eine guava-Bibliothek und es wird geladen erste von Ihrem classpath anstelle der version, die Sie wollen. Dies würde bewirken, dass diese Laufzeit-exception.
InformationsquelleAutor der Antwort Kurtymckurt
Einem anderen Grund dies geschieht, ist, wenn die GSON-Bibliothek importiert werden, bevor der Guava library.
Finden Sie unter:
https://github.com/google/guava/issues/2786
War ich importieren die Gläser aus einem Ordner in IntelliJ. Was landete, war fügen Sie ein "z" neben gson (also die jar-wären die Namen zgson), so dass Guave würde zuerst importieren.
InformationsquelleAutor der Antwort n4rush0
Mir das passiert, wenn man eine Abhängigkeit, die abhängig von einer früheren version von Guave, und diese Abhängigkeit ist zuerst aufgeführt. Guave gelöst werden, auf dem Ort, es war gefunden, die ersten und ignorieren den rest.
Dem Update ist das hinzufügen der Abhängigkeit von Guave erste, aber aufpassen, dass es nicht bricht, andere Projekte mit Guave
InformationsquelleAutor der Antwort smac89
Gibt es 2 Versionen: 1) com.google.Guave:Guave:26.0-android-2) com.google.Guave:Guave:26.0-jre . Wahrscheinlich ordnen Sie die falsche version, wie in meinem Fall
InformationsquelleAutor der Antwort Andrew Glukhoff
Ja, das ist das problem mit der guava-Bibliothek nur. Halten Sie die aktualisierte Bibliothek und entfernen Sie alle verbleibenden Versionen von Guave, wenn Sie haben und versuchen. Sollte funktionieren.
InformationsquelleAutor der Antwort Vali Shah