0

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

我正在开发Bukkit插件的更新系统。因此,我不得不自己编写这些类。但是一直以来我都想调用一个方法(具体来说:debug(String))作为另一个类的包装方法,我得到以下信息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)

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

4

1 回答 1

2

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

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

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

于 2013-09-30T21:57:03.987 回答