ServerPlugin NullPointerException aus unerklärlichem Grund

Dieses Thema im Forum "Programmierung" wurde erstellt von keahie, 16. August 2015.

  1. keahie
    Offline

    keahie

    Registriert seit:
    22. Februar 2014
    Beiträge:
    23
    Minecraft:
    keahie
    Liebe Foren Mitglieder,
    ich arbeite gerade an einem Fraktion Plugin und habe ein Problem. Es kommt aus einem mir unbekanntem Grund immer zu einer NullPointerException in Zeile 157. Quelltext: hier. Ich es liegt nicht an der Config. Wenn ich nämlich die Methode in die Hauptklasse kopiere und dort ausführe, kommt keine Exception. Es ist allerdings wichtig das die Fraktion in einer eigenen Klasse ist, also kann ich diese Methode nicht benutzen. Hoffe jemand kann mir helfen.
    MfG panfernox aka keahie
     
    #1
  2. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    Code (Text):
    1. public File ordner = new File("plugins//Fraktion");
    2.         public File fFraktion = new File("plugins//Fraktion//fraktion.yml");
    3.         public File fPlayer = new File("plugins//Fraktion//player.yml");
    Zunächst nutzt man normalerweise File.separator statt // denn Plattform Unabhängigkeit ist eine von Javas stärken und die will man doch nutzen.

    außerdem solltest du getDataFolder() benutzen.

    Hier der Fehler:
    Code (Text):
    1. private FraktionMain plugin;
    Code (Text):
    1. fraktion.add(new Fraktion(name));
    Code (Text):
    1. public Fraktion(String fraktionName) {
    2.                 createFraktion(fraktionName);
    3.         }
    Code (Text):
    1. public void createFraktion(String fraktion) {
    2.                 plugin.fcfg.set(fraktion + ".Name", true);
    3.                 plugin.fcfg.set(fraktion + ".Owner", "Replace_this");
    4.                 plugin.fcfg.set(fraktion + ".MemberList", "Replace_this");
    5.                 plugin.fraktion.add(new Fraktion(fraktion));
    6.                 try {
    7.                         plugin.fcfg.save(plugin.fFraktion);
    8.                 } catch (IOException e) {
    9.                         e.printStackTrace();
    10.                 }
    11.         }
    Ich hoffe du siehst es selbst ;)
     
    #2
  3. keahie
    Offline

    keahie

    Registriert seit:
    22. Februar 2014
    Beiträge:
    23
    Minecraft:
    keahie
    GPSforLEGENDS ich habe versucht "File.seperator" und "getDataFolder" zu verwenden, allerdings bekomme ich das nicht ganz hin xD
    Code (Text):
    1. public File fFraktion = new File(getDataFolder() + "Fraktion" + File.separator + "fraktion.yml");
    Es kommt immer der Fehler
    Code (Text):
    1. java.io.IOException: Das System kann den angegebenen Pfad nicht finden
     
    #3
  4. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    zwischen getDataFolder()und fraktion muss auch noch was?
    Hast du schon den Hauptfehler gefunden, den man eigentlich sehen sollte mit den Code den ich geschrieben habe

    und mach fraktion.yml hinter dem Komma
     
    #4
  5. keahie
    Offline

    keahie

    Registriert seit:
    22. Februar 2014
    Beiträge:
    23
    Minecraft:
    keahie
    Ok gut, ich habe die .yml Dateien hinter das Komma gesetzt. Ich habe aber nicht herausgefunden was zwischen getDataFolder() und fraktion stehen muss (habe es mit getPath() und getAbstractPath() ausprobiert). Desweiteren finde ich den Fehler in createFraktion nicht. Ich habe das ganze( ungefähr) auch schon bei anderen Plugins gemacht und da hat es immer Funktioniert.
     
    #5
  6. Man initialisiert Variablen nicht vor der onEnable (siehe LifeCycle). Es sei denn es sind Konstanten. Es ist klar, dass es nicht funktionieren kann, wenn man derartige Fehler macht. Es wäre anzuraten Java zu lernen.

    Eine NullPointerException ist leicht debugbar, wenn man eben Programmieren kann. (Irgendetwas ist eben 'null')

    Edit: Wer nicht lernen will, der braucht auch keine Hilfe. Pseudo-Entwickler, die keine Ahnung vom Programmieren haben, unterstütze ich nicht. Da ist mir meine Zeit zu teuer für.
     
    #6
  7. keahie
    Offline

    keahie

    Registriert seit:
    22. Februar 2014
    Beiträge:
    23
    Minecraft:
    keahie
    manf, ich initialisiere Variablen meistens vor der onEnable() Methode und es klappt sonst immer. Des weiteren gibt es im "normalen" Java keine onEnable() Methode die man zwingend benutzen muss und selbst da kann ich vor der main() Methode Variablen initialiseren (ja ich weiß die meisten initialiseren sie im Konstruktor aber den kann man in der Main Klasse bei einem Plugin nicht benutzen) und ich weiß was eine NullPointerException ist, ich weiß nur nicht wieso sie an dieser Stelle auftritt. In der Konsole steht nur das genau bei dieser Zeile ein Exception entsteht. Mehr kann ich dir leider auch nicht sagen.
     
    #7
  8. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    Geh doch einfach mal den Code durch den ich geschickt habe und sag mir an welcher stelle du plugin einen Wert zuweist
     
    #8