2016-03-27 1 views
-1

Also habe ich ein Jar dekompiliert und alles in Eclipse importiert, aber ich habe eine Tonne dieser wirklich seltsamen Fehler überall.Dekompilierter Code verursacht "Kann nicht auf ein Feld verweisen, bevor es definiert ist"

Error

Wenn ich über den Fehler in Zeile schweben 279 heißt es

kein Feld verweisen kann, bevor es

selbst definiert ist, obwohl es ganz klar auf der Linie definiert ist, oben hatte ich sogar einen Fehler in einem Kommentar, dass die Variable nicht aufgelöst werden konnte, obwohl sie auskommentiert war.

+1

Wo Datei/2/3/4 erklärt? –

+1

Das Problem ist höchstwahrscheinlich, dass alle diese Dateien nicht deklariert werden, bevor ihnen ein Wert zugewiesen wird. –

+1

Nun, ein Decompiler wird normalerweise nicht alles perfekt machen, also ist es nur eines dieser Dinge, mit denen du umgehen musst, denke ich. –

Antwort

-1

Java analysiert Felder während der Kompilierung in der richtigen Reihenfolge, so dass Felder nicht in beliebiger Reihenfolge aufeinander verweisen können. Ihr Code-Snippet scheint dieses Problem nicht zu haben, aber wenn die Felder später in der Datei deklariert werden, wäre dies der Grund.

Manchmal ist Eclipse einfach nicht mehr synchron; Wenn Sie nichts falsch sehen können, versuchen Sie refreshing das Projekt oder rebuilding es.

+0

Downvoter Pflege zu erklären? – dimo414

0

Das Problem ist höchstwahrscheinlich, dass alle diese Dateien nicht deklariert werden, bevor ihnen ein Wert zugewiesen wird.

Z. B file = new File("params"); sollte sein: File file = new File("params");

+0

Ich habe eigentlich nur ein bisschen mehr in die Datei hineingeschaut, und die Dateien werden weiter unten in der Klasse deklariert. – Zacx

+1

Sie müssen vor dem Aufruf deklariert werden, sonst wird ein Fehler verursacht. –

+0

Aber das macht keinen Sinn, der Decompiler hat nur zufällig alle Deklarationen ausgewählt und an einen anderen Ort verschoben? – Zacx