未使用的方法的java.lang.NoSuchMethodError

时间:2017-07-05 18:30:25

标签: java maven nosuchmethoderror

我对Maven很陌生,而且我在运行时遇到NoSuchMethodError问题,因为在将我的工作与其他人合并后,我的项目中的任何地方都没有使用该方法。 ; s,特别是关于com.google.inject.util.Types.collectionOf

新工作与修复项目的可执行jar有关,所以我不认为任何修改与guice有关。我的本地仓库包含完全相同的guice和multibinding jar版本,就像我运行此项目的先前版本时所做的那样,并且没有对pom文件进行任何明显的更改。

我熟悉这种错误并且已经修复过,但这次我无法弄清楚这个问题。这是我的错误消息的开头:

Exception in thread "main" java.lang.NoSuchMethodError: com.google.inject.util.Types.collectionOf(Ljava/lang/reflect/Type;)Ljava/lang/reflect/ParameterizedType;
    at com.google.inject.multibindings.Multibinder.collectionOfProvidersOf(Multibinder.java:202)
    at com.google.inject.multibindings.Multibinder$RealMultibinder.<init>(Multibinder.java:283)
    at com.google.inject.multibindings.Multibinder$RealMultibinder.<init>(Multibinder.java:258)
    at com.google.inject.multibindings.Multibinder.newRealSetBinder(Multibinder.java:178)
    at com.google.inject.multibindings.Multibinder.newSetBinder(Multibinder.java:132)

1 个答案:

答案 0 :(得分:0)

这个问题很老,已在评论中得到回答,我也面临同样的问题并以评论为基础,我做了一些事情,我的问题得到了解决。 所以只是为了帮助其他新用户在这里发帖。

当我遇到这个问题时,我对pom的依赖性如下所示。

<dependency>
        <groupId>com.google.inject</groupId>
        <artifactId>guice</artifactId>
        <version>4.0</version>
</dependency>

现在,在添加了一个以下依赖项之后,它已得到解决并且工作正常。

<dependency>
        <groupId>com.google.inject.extensions</groupId>
        <artifactId>guice-multibindings</artifactId>
        <version>4.0</version>
</dependency>