使用com时出现NoSuchMethodError异常。谷歌。常见的基础分离器[英] NoSuchMethodError exception when using com.google.common.base.Splitter

本文是小编为大家收集整理的关于使用com时出现NoSuchMethodError异常。谷歌。常见的基础分离器的处理/解决方法,可以参考本文帮助大家快速定位并解决问题,中文翻译不准确的可切换到English标签页查看源文。

问题描述

我正在尝试使用com.google.common.base.base.splitter如下

Iterable<String> segs = Splitter.on("/").split("one/two/three/four/five");

for (String seg : segs) {
  System.out.println(seg);
}

但是,我看到以下例外:

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)

有人知道我在这里做错了吗?

推荐答案

我遇到了同样的问题. 事实证明,我使用了旧版本的番石榴. 访问此网站: https://code.google.com/p/guava-libraries/,并下载较新版本.

顺便说一句,Google-Collections被更名为Guava.

其他推荐答案

使用以下依赖关系来解决问题

使用Maven添加对Guava的依赖性,请使用以下内容:

<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>19.0</version>
</dependency>

使用gradle添加依赖性:

dependencies {
  compile 'com.google.guava:guava:19.0'
}

其他推荐答案

您的问题是另一个库还可能包含一个Guava库,并且首先是从您的class路径加载的,而不是您想要的版本.这会导致此运行时例外.

本文地址:https://www.itbaoku.cn/post/978712.html

问题描述

I'm trying to use com.google.common.base.Splitter as follows

Iterable<String> segs = Splitter.on("/").split("one/two/three/four/five");

for (String seg : segs) {
  System.out.println(seg);
}

However, I'm seeing the following exception:

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)

Does anyone have any idea what I'm doing wrong here?

推荐答案

I encountered the same problem. It turned out that I used a older version of guava. Go to this website:https://code.google.com/p/guava-libraries/, and download a newer version.

By the way,google-collections was renamed to Guava.

其他推荐答案

Use the below dependency to fix the issue

To add a dependency on Guava using Maven, use the following:

<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>19.0</version>
</dependency>

To add a dependency using Gradle:

dependencies {
  compile 'com.google.guava:guava:19.0'
}

其他推荐答案

Your problem is that another library might also contain a guava library and it's being loaded first from your classpath instead of the version you want. This would cause this runtime exception.