java - 即使存在自编码方法也会出现 NoSuchMethodError

标签 java nosuchmethoderror bukkit

我一直在寻找问题的解决方案,但没有得到足够的答案。

我正在开发 Bukkit插件的更新系统。因此,我必须自己编写这些类的代码。但我一直想从 debug(String) 调用一个方法(具体来说: another class )作为包装方法。 ,我收到以下 NoSuchMethodError:

[RegionManager] Enabling RegionManager v1.0.0
[RegionManager] [DEBUG] loading configuration options...
[RegionManager] [DEBUG] done.
[RegionManager] [DEBUG] initializing attributes...
[RegionManager] [DEBUG] done.
[RegionManager] [DEBUG] registering commands and events...
[RegionManager] [DEBUG] done.
[RegionManager] [DEBUG] fetching WorldGuard...
[RegionManager] [DEBUG] done.
[RegionManager] [DEBUG] checking for updates...
[SEVERE] Exception in thread "update/version check" 
[SEVERE] java.lang.NoSuchMethodError: com.lirtistasya.bukkit.util.BukkitPlugin.debug(Ljava/lang/String;)V
[SEVERE]    at com.lirtistasya.bukkit.util.net.Updater.debug(Updater.java:278)
[SEVERE]    at com.lirtistasya.bukkit.util.net.Updater.access$0(Updater.java:277)
[SEVERE]    at com.lirtistasya.bukkit.util.net.Updater$UpdateRunnable.run(Updater.java:284)
[SEVERE]    at java.lang.Thread.run(Unknown Source)

如果有人能帮我解决这个问题,那就太好了...

最佳答案

NoSuchMethodError 通常表明您正在编译的库比您正在运行的库更新。这个编译库有这个方法,但是运行库没有。

在这种情况下,根据 GitHub 的说法,“调试”方法是在过去一个小时内 checkin 的,所以它真的非常非常新。如果您正在使用前段时间构建的任何现有 jar,它们将没有该方法,并且每当您尝试调用该方法时,您都会收到 NoSuchMethodError。

您需要检查您的类路径,删除所有旧的 jar 文件,并将它们替换为您使用最新、最好的代码生成的新 jar。

关于java - 即使存在自编码方法也会出现 NoSuchMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19104288/

相关文章:

java - 常量表达式在编译时求值......?

java - 在 Retrofit 2 中添加第三个 @Field 时出现 NoSuchMethodError

java - 在范围内无法访问 TObjectHash<T> 类型的封闭实例。插口插件

java - 无意义的 NullPointerException/变量决定不存在

java - Neo4J Spring relateTo 函数无法解析

java - Spring 依赖注入(inject) : FileNotFound Exception

java - 'NoSuchMethodException' 即使该方法确实存在

java - Selenium 在 Java Web 项目上运行时抛出 "NoSuchMethodError"

java - Bukkit 倒数计时器在 Activity 结束后发生

java - 使类不可变