• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

NoClassDefFoundError beim PlayerJoinEvent

Abrogatum

Minecrafter
Registriert
11 Februar 2017
Beiträge
4
Diamanten
0
Ich schreibe derzeit ein großes Plugin für eine Lobby, doch ich bekomme anscheinend willkürlich NoClassDefFoundError Exceptions geworfen...

Folgender Log (gekürzt):
Could not pass event PlayerJoinEvent to LobbyTweaks org.bukkit.event.EventException: null
Caused by: java.lang.NoClassDefFoundError: net/server/tweaks/items/temCollection
Doch das interessante: Wenn ich die Klasse entferne, wirft eine andere Klasse diesen Fehler... Auch erscheint dieser Fehler nicht bei jedem Join. Total unberechenbar.

Laut Internet wird NoClassDefFoundError manchmal geworfen, wenn die Spigotversionen unterschiedlich sind. Ist bei mir nicht der Fall. Frisch geupdated auf 1.12.1, sowohl auf dem Server, als auch in Eclipse...



Würde mich interessieren, warum mir diese Fehler vor die Füße geschmissen werden! Danke.

[Edit]
Ich habe total unterschiedliche Methoden, die ausgeführt werden. Alle machen etwas anderes und funktionieren auch (Außer, wenn dieser Fehler gelegentlich erscheint...).
Ich habe jetzt den Fehler laut Log in der Zeile:

p.getInventory().setItem(0, new Navigator());
Habe die Obermethode nun verschoben und führe sie als letztes im JoinEvent aus. Bisher geht's auf einmal. Dauert bestimmt nicht lange, bis eine andere Methode/Klass den gleichen Fehler wirft...
 
Zuletzt bearbeitet:

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Scheinbar verwendest du eine Klasse namens net.server.tweaks.items.temCollection und diese Klasse ist nicht in der JAR-Datei deines Plugins enthalten. Falls diese Klasse aus einem anderen Plugin stammt, musst du dieses als Voraussetzung in deiner plugin.yml angeben. Falls es aus einer Bibliothek stammt, dann musst du diese in die JAR-Datei deines Plugins integrieren. Je nachdem welches Buildtool du verwendest ist dies einfacher oder schwerer. Falls du z.B. Maven verwendet gibt es das Maven Shade Plugin für diesen Zweck.
 

Abrogatum

Minecrafter
Registriert
11 Februar 2017
Beiträge
4
Diamanten
0
Dieser Thread ist schon ein knappes Jahr alt, aber ich hasse unbeantwortete Forumbeiträge, daher eine kurze Antwort auf meine eigene Frage.
Bin bis heute immer wieder auf den ähnlichen Fehler gestoßen. Ursache ist anscheinend, dass ich zwei Plugins hatte, wovon eins das andere benötigt und voraussetzt. Das benötigte Plugin - eine Art Library für Spigot selbst - wurde ständig aktualisiert und wurde daher immer als neuste Version auf den Server geschmissen. Genau das ist der Knackpunkt gewesen. Das andere Plugin verwendete noch die alte Version meiner Library. Auch wenn bestehende Funktionen nicht verändert wurden - es hat wohl ausgereicht, das Plugin außer Gefecht zu setzen. Daher auch der NoClassDefFoundError, da der Code wahrscheinlich Java-intern komplett verändert wurde.

TL;DR:
Immer die Plugins mit der neusten Version euer Dependencies kompilieren, dann sollte sowas nicht passieren.
 
Oben