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 によると、その「デバッグ」メソッドは過去 1 時間以内にチェックインされたので、本当に新しいものです。少し前にビルドされた既存の jar を使用している場合、それらにはそのメソッドがなく、メソッドを呼び出そうとするたびに NoSuchMethodError が発生します。

クラスパスを確認し、古い jar ファイルを削除して、この最新の最高のコードを使用して自分で生成した新しい jar ファイルに置き換える必要があります。

于 2013-09-30T21:57:03.987 に答える