清理项目后NoSuchMethodError

时间:2015-06-09 07:53:45

标签: java ant nosuchmethoderror

我目前收到此错误:

java.lang.NoSuchMethodError: org.json.JSONObject.keySet()Ljava/util/Set;
at ee.ut.cs.Parser.accessLint(Parser.java:39)

我已经尝试过清理项目了。

我怀疑在创建jar文件时我在src / plugin / parse-htmlraw / build.xml中有错误,但我不确定。我理解这个错误是因为函数在运行时不存在,但是创建了对象,这意味着类就在那里,而不是那个函数。我在创建的jar中反编译了.class文件,它具有必要的功能。

代码位于https://github.com/jaansusi/WCAGgrader

问:产生此错误的构建有什么问题?

问题是,即使我将必要的类文件放在我创建的jar中,它们也没有正确链接,并且在jar中调用的类无法在jar中找到函数其他课程。创建了类对象JSONObject,但找不到JSONObject类中的函数。

3 个答案:

答案 0 :(得分:0)

检查您使用的版本。 可能存在使用2个不同版本的情况,这反过来会导致此错误。

答案 1 :(得分:0)

到自己的Maven本地存储库com \ Google \ code \ gson \ gson,看看是否有两个或多个有关json的版本,要做的就是删除旧的,并记得在将项目引入旧版本的依赖项(如果有的话),将旧版本的依赖项更改为新版本完全可以解决此问题

答案 2 :(得分:0)

如果找不到有问题的版本,则有可能从以下依赖项获得它(特别是如果使用的是Spring)-

<artifactId>android-json</artifactId>
<groupId>com.vaadin.external.google</groupId>

排除它对我有用

  • 分析依赖关系的一种简单方法是Intellij中的maven-helper插件,请参见here