我一直在为我的问题寻找解决方案,但没有得到足够的答案。
我正在使用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)
如果有人能帮助我,那就太好了......
答案 0 :(得分:2)
NoSuchMethodError
通常表示您正在编译的库比您正在运行的库更新。这个编译库有方法,但运行时库没有。
在这种情况下,根据GitHub,“调试”方法在最后一小时内被检查,所以它真的非常非常新。如果您正在使用前一段时间构建的任何现有jar,他们将不会使用该方法,并且每当您尝试调用该方法时,您将获得NoSuchMethodError。
您需要检查您的类路径,删除任何旧的jar文件,并使用您使用这个最新,最好的代码自己生成的新jar替换它们。