J'essaie d'utiliser com.google.common.base.Splitter comme suit
Iterable<String> segs = Splitter.on("/").split("one/two/three/four/five");
for (String seg : segs) {
System.out.println(seg);
}
Cependant, je vois l'exception suivante:
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)
Est-ce que quelqu'un a une idée de ce que je fais mal ici?
J'ai rencontré le même problème. Il s'est avéré que j'ai utilisé une version plus ancienne de goyave. Accéder à ce site: https://code.google.com/p/guava-libraries/ , et téléchargez une version plus récente.
À propos, Google Collection a été renommé en goyave.
Utilisez la dépendance ci-dessous pour résoudre le problème
Pour ajouter une dépendance à Guava en utilisant Maven, utilisez ce qui suit:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
Pour ajouter une dépendance à l'aide de Gradle:
dependencies {
compile 'com.google.guava:guava:19.0'
}
Votre problème est qu'une autre bibliothèque peut également contenir une bibliothèque de goyave et qu'elle est chargée en premier à partir de votre chemin de classe au lieu de la version souhaitée. Cela provoquerait cette exception d'exécution.
Pour moi, cela se produit lorsque vous avez une dépendance qui dépend d'une version antérieure de Guava et que cette dépendance est répertoriée en premier. La goyave sera résolue à l'endroit où elle a été trouvée en premier et ignore le reste.
La solution consiste à ajouter d'abord la dépendance à la goyave, mais en veillant à ce qu'elle ne rompt pas avec les autres projets utilisant de la goyave.
Il existe 2 versions: 1) com.google.guava: guava: 26.0-Android 2) com.google.guava: guava: 26.0-jre. Très probablement, vous attribuez la mauvaise version comme dans mon cas
Cela se produit également si la bibliothèque GSON est importée avant la bibliothèque Guava.
Voir: https://github.com/google/guava/issues/2786
J'importais les pots d'un dossier dans IntelliJ. Ce qui a fini par fonctionner a été d’ajouter un "z" à côté de gson (pour que le bocal soit nommé zgson) afin que Guava puisse importer en premier.