Compiler-Fehler NullPointerException beim Auslesen von .lang-Datei

Beatsleigher

Bekanntes Mitglied
Moin,

ich habe jetzt gute vier Stunden an einem Parser für meine Übersetzungsdatein gebastelt und er liest gut bis zur Hälfte durch und dann schmeißt er einen Fehler.

Vorab: Hier ist die Datei, die er ausließt: GitHub

Und hier ist die Klasse, mit dem Parser (die Methode ist 500+ Zeilen, die schreibe ich hier mit Sicherheit nicht rein.): GitHub
Ab Zeile 1534 fängt die parse()-Methode an.

Stack Trace:
Code:
[COLOR="Red"]Exception in thread "main" java.lang.NullPointerException
	at eu.m4gkbeatz.androidtoolkit.ui.UAT$LangFileParser.parse(UAT.java:1938)
	at eu.m4gkbeatz.androidtoolkit.ui.UAT.loadTranslation(UAT.java:84)
	at eu.m4gkbeatz.androidtoolkit.ui.UAT.<init>(UAT.java:74)
	at eu.m4gkbeatz.androidtoolkit.Main.main(Main.java:176)[/COLOR]

Bitte sagt mir, ihr findet da einen Fehler. Ich bin den ganzen Code und die Datei mindestens vier Male durchgegangen, da ist nichts. Der unterbricht einfach mitten drin.

Ich hoffe ihr könnt mir helfen.

Danke im Voraus!

EDIT:

Ich habe die Datei mal in eine String gelesen, und dann mittels StringReader ausgelesen, genau der gleiche Fehler.

EDIT2:
Ich habe mir mal die derzeit auszulesende Zeile ausgeben lassen, der s*****t mir da die halbe Datei auf der Matte.
Code:
[DEBUG]::[2 May 2014 02:22:38 GMT] - Attempting translation from file: file:/home/beatsleigher/code/Java/UniversalAndroidToolkit/Universal_Android_Toolkit/build/classes/eu/m4gkbeatz/androidtoolkit/resources/langs/en_gb.lang

 tabs {
      androidTab=Android
      fastbootTab=Fastboot
      deviceTab=Device
      toolkitTab=Toolkit
      logcatTab=Logcat
      dmesgTab=DMESG
      batteryTab=Battery
      rootTab=Root and CPU
      buildPropTab=Build Prop Manager
      fileManagerTab=File Manager
      settingsTab=Preferences
      updatesTab=Updates
 };
 
 panels {
      androidTab: {
Exception in thread "main" java.lang.NullPointerException
	at eu.m4gkbeatz.androidtoolkit.ui.UAT$LangFileParser.parse(UAT.java:1946)
	  applicationsPanel=Applications
	  filesPanel=Files
	  backupsPanel=Backups
	  rootingPanel=Rooting
	  adbTCPPanel=ADB via TCP
      };
      
      fastbootTab: {
	at eu.m4gkbeatz.androidtoolkit.ui.UAT.loadTranslation(UAT.java:84)
	at eu.m4gkbeatz.androidtoolkit.ui.UAT.<init>(UAT.java:74)
	  formattingPanel=Formatting
	  flashingPanel=Flashing
	  bootPanel=Boot
	  lockStatePanel=Lock State
	  updatePanel=Update
      };
      
	at eu.m4gkbeatz.androidtoolkit.Main.main(Main.java:176)
      settingsTab: {
	  devicesPanel=Devices
	  updatesPanel=Updates
	  logsPanel=Logs
	  themePanel=Theme
	  languagePanel=Language
      };
 };
 
 toolbar {
      showDevicesButton=Show Devices
 };
[DEBUG]::[2 May 2014 02:22:38 GMT] - Reloading devices...
 
Zuletzt bearbeitet:

JavaMeister

Gesperrter Benutzer
Die Zeile in der der Fehler Auftritt steht da doch.

10 Sekunden mit einem debugger und die Lösung ist da.

Es sei an der Stelle angemerkt, dass dieser Code niemals durch irgendeine Code Review kommen würde

Die NPE kommt daher, dass du line.contains machst, obwohl noch line nicht gelesen wurde. Line ist null.
 
Zuletzt bearbeitet:

Joose

Top Contributor
Wie JavaMeister schon sagt, die Exception und der StackTrace sagen dir Fehler und die Zeile die den Fehler verursacht!

Generell bei Datei auslesen: verwende eine normale while-Schleife (wie die äußerste) und prüfe das eingelesene auf null. Dann kann man gar nicht in die Gefahr eine NPE kommen.

Weitere Tipps:
Um die Methode übersichtlicher zu machen, teile sie auf! Du kannst 5 weitere Methoden machen (für buttons_and_labels, menus, tabs, panels, toolbar) und sollte eine Exception passieren kannst du genauer sehen welchen "Bereich" es betrifft.

Du prüfst immer wieder
Code:
 while (!line.equals("      };"));
, spare dir die Leerzeichen und prüfe ob die Zeile mit "};" endet. Vermeide viele Leerzeichen in zu überprüfenden Strings, 1x was falsch getippt/geändert und der Code arbeitet nicht mehr wie erwünscht! Probiere die String zu trimmen etc.

Java:
if (line.contains("refreshButton=")) {
    String[] arr = line.split("=");
    refreshButton = arr[1];
}
if (line.contains("intervalLabel=")) {
    String[] arr = line.split("=");
    intervalLabel = arr[1];
}
if (line.contains("secondsLabel=")) {
    String[] arr = line.split("=");
    secondsLabel = arr[1];
}
.....

Hast du dir schon mal überlegt was passiert wenn du folgende Zeile parsen willst?
Code:
..... refreshButton=XXXX intervalLabel=YYYY ....
refreshButton und intervalLabel bekommen beide XXXX gesetzt ;)

[TIPP]Allgemein bei Parsern: Gehe nie von einer fixen Formatierung aus, nur von einer fixen Syntax! [/TIPP]
Das hat den Vorteil die Formatierung des zu parsenden Files ändern kann (besser lesbar), aber der Parser immer noch funktioniert.
Bei fixen Leerzeichen muss das File immer passend formatiert sein. Ob jetzt aber zwischen 2 Properties ein Leerzeichen, zehn Leerzeichen oder gleich >100 Leerzeichen stehen sollte egal sein solange min 1 dazwischen ist!
 

Beatsleigher

Bekanntes Mitglied
Danke für die Antworten.

Ich war müde und war nicht mehr frisch in der Birne, Tipps gemerkt und werden umgesetzt.
Ich habe mich nur gewundert, weil es dre Schleifen lang funktioniert, und dann wenn ich eine Zeile ausgeben lasse, er mir da die halbe Datei vor der Tür s*****t.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z NullPointerException beim Schreiben einer ArrayList in eine Datei Allgemeine Java-Themen 6
P Beim sortieren nullpointerexception Allgemeine Java-Themen 12
S NullPointerException beim Laden von BMPs Allgemeine Java-Themen 3
F NullpointerException beim Einlesen einer Datei Allgemeine Java-Themen 13
Zeppi NullPointerException in einer if-Abfrage Allgemeine Java-Themen 6
T imagej-server NullPointerException Allgemeine Java-Themen 1
L Methoden NullpointerException Allgemeine Java-Themen 5
B OOP Auslöser für NullPointerException Allgemeine Java-Themen 3
I Vererbung Nicht erklärliche NullPointerException Allgemeine Java-Themen 7
Drachenbauer warum bekomme ich hier eine NullPointerException Allgemeine Java-Themen 6
I Array Parameter mit 2 Klassen - NullPointerException Allgemeine Java-Themen 3
S Exception in thread "main" java.lang.NullPointerException at FamilienApp.main(FamilienApp.java:15) Allgemeine Java-Themen 1
S Methoden Problem mit NullPointerException Allgemeine Java-Themen 9
F Input/Output NullPointerException, aber wieso? [Apache POI] Allgemeine Java-Themen 11
F Input/Output NullPointerException with Apache POI Allgemeine Java-Themen 7
P wiedermal NullPointerException Allgemeine Java-Themen 2
kodela NullPointerException Allgemeine Java-Themen 2
L Variablen NullPointerException (RSA) Allgemeine Java-Themen 2
B NullPointerException bei @Inject JSF Allgemeine Java-Themen 0
Arif Probleme mit NullPointerException Allgemeine Java-Themen 2
G String an Arduino senden NullPointerException in PrintWriter Allgemeine Java-Themen 6
R NullPointerException Ohne Grund Allgemeine Java-Themen 5
D ByteBuffer getInt NullpointerException Allgemeine Java-Themen 4
S JavaMail - MailSubject,MailFrom,MailDate in String Array speichern NullPointerException Allgemeine Java-Themen 2
T Compiler-Fehler NullpointerException! Allgemeine Java-Themen 7
A Methode ergibt Java NullpointerException. Allgemeine Java-Themen 3
F Socket NullPointerException Bitte um hilfe! Allgemeine Java-Themen 12
L NullPointerException bei Instanzvarialen Allgemeine Java-Themen 3
I Fehler java.lang.NullPointerException Allgemeine Java-Themen 5
B NullPointerException - Aber kein Fehler im Code Allgemeine Java-Themen 4
H java.lang.NullPointerException Allgemeine Java-Themen 5
L Interpreter-Fehler java.lang.NullPointerException Allgemeine Java-Themen 17
M JSON NullPointerException Allgemeine Java-Themen 5
M NullpointerException Allgemeine Java-Themen 2
L Eclipse NullPointerException Allgemeine Java-Themen 6
M Fitness-Rechner: NullPointerException Allgemeine Java-Themen 7
G Thread erzeugt nicht plausible NullPointerException Allgemeine Java-Themen 7
A java.lang.NullPointerException bei Schleife Allgemeine Java-Themen 3
K Unerklärliche nullpointerexception Allgemeine Java-Themen 6
C Was bekomme ich eine Nullpointerexception? (Apache POI) Allgemeine Java-Themen 3
S javadoc java.lang.NullPointerException Allgemeine Java-Themen 2
K 3Dimensionales Feld - NullPointerException Allgemeine Java-Themen 2
J Compiler-Fehler NullPointerException Allgemeine Java-Themen 12
T Compiler-Fehler NullPointerException bei ADT LinkedTree Allgemeine Java-Themen 31
3 MP3-Finder wirft NullPointerException Allgemeine Java-Themen 13
M NullPointerException MenuItem Allgemeine Java-Themen 7
S Dialog einblenden bei NullPointerException Allgemeine Java-Themen 5
T DefaultTableModel NullPointerException Allgemeine Java-Themen 7
ruutaiokwu NullPointerException auf member, die per konstruktor gesetzt wird (multithread-kontext) Allgemeine Java-Themen 2
B NullPointerException ohne Angabe Allgemeine Java-Themen 5
F NullPointerException aber warum ? Allgemeine Java-Themen 9
F Array NullPointerException Allgemeine Java-Themen 26
B NullPointerException bei Wertzuweisung Allgemeine Java-Themen 3
C NullPointerException Allgemeine Java-Themen 9
MonsterBit java.lang.NullPointerException Allgemeine Java-Themen 2
O NullPointerException (wohl Denkfehler) Allgemeine Java-Themen 5
N Warum nullPointerException? Allgemeine Java-Themen 13
N Generics-NullpointerException Allgemeine Java-Themen 7
J NullPointerException mit HashMap Allgemeine Java-Themen 2
B NullPointerException bei new XStream() Allgemeine Java-Themen 2
J java.lang.NullPointerException bei Threadprogrammierung Allgemeine Java-Themen 9
J NullPointerException bei JasperReports Allgemeine Java-Themen 2
V NullPointerException bei Vector Allgemeine Java-Themen 2
G Warum kommt hier NullPointerException? Allgemeine Java-Themen 3
G NullPointerException Allgemeine Java-Themen 5
R Immer wieder NullPointerException Allgemeine Java-Themen 2
M NullPointerException Allgemeine Java-Themen 4
J Fehler: java.lang.NullPointerException Allgemeine Java-Themen 2
G NullPointerException, aber warum? Allgemeine Java-Themen 10
G NullPointerException problem Allgemeine Java-Themen 30
mhauert NullPointerException bei Zugriff auf JNI Objekt Allgemeine Java-Themen 6
J Folgender Fehler: java.lang.NullPointerException Allgemeine Java-Themen 4
T NullPointerException nach Java Update Allgemeine Java-Themen 4
G NullPointerException Allgemeine Java-Themen 6
H NullPointerException trotz Abfangen von null? Allgemeine Java-Themen 9
H nullPointerException bei [ArrayList<String>.add(.)] Allgemeine Java-Themen 3
H NullPointerException Allgemeine Java-Themen 10
P NullPointerException Allgemeine Java-Themen 8
A NullPointerException, Thread soll Thread steuern Allgemeine Java-Themen 2
MQue Sichtbarkeit/HashMap/NullPointerexception Allgemeine Java-Themen 2
MQue NullPointerException Allgemeine Java-Themen 17
A NullPointerException Allgemeine Java-Themen 15
G java.lang.NullPointerException JFreeChart Allgemeine Java-Themen 5
A NullPointerException Allgemeine Java-Themen 11
G Methode mit Schleifen NullPointerException Allgemeine Java-Themen 2
B Pobleme mit NullpointerException Allgemeine Java-Themen 13
M java.lang.NullPointerException im Chatclient Allgemeine Java-Themen 12
B java.lang.NullPointerException Allgemeine Java-Themen 11
M NullPointerException bei Subklasse ohne MediaTracker Allgemeine Java-Themen 12
G Problem mit NullPointerException Allgemeine Java-Themen 5
D NullPointerException wo keine sein sollte. Allgemeine Java-Themen 2
V Button schließen - NullPointerException Allgemeine Java-Themen 6
V NullPointerException Allgemeine Java-Themen 12
berserkerdq2 Weiß jemand wie ich im Scenebuilder das Fenster so darstellen kann, dass beim Vollbildmodus die Objekte so angezeigt werden? Allgemeine Java-Themen 1
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
B Mysteriöse Ergebnisse beim Baccarat Programm? Allgemeine Java-Themen 13
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
A Zweite Service Klasse beim Kompilieren Allgemeine Java-Themen 6
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
B Stringmanipulationen beim Dateinamen Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben