Ich kann nichts funktionell falsch in Bezug darauf, was ausgeführt wird, sehen, aber ich habe nur eine Stunde verschwendet, die beweisen, dass mein Code und der Compiler tun, was sie sollen.Android Studio Debugger markiert die falschen Zeilen
Betrachten Sie diesen Code:
public int getAnswer(int a) {
int retval = 18;
int x = 25;
int y = 50;
while (a-- > 0) {
if (a == 3) {
retval = a;
return retval;
}
}
x = 10;
y = 20;
return 0;
}
Called mit
int theAnswer = getAnswer(6);
Breakpoint- beiden Leitungen enthalten return
und bevor Sie den Code ausführen, versuchen, das Ergebnis vorherzusagen, und deshalb wird die Linie schlagen.
Wie Sie sich aus dem Ton meiner Frage vorstellen können, wird die falsche Zeile hervorgehoben, aber das richtige Ergebnis zurückgegeben. Wenn Sie den Code durchgehen, tanzt er ziemlich herum.
Kann irgendetwas anders konfiguriert werden, so dass die richtigen Zeilen angezeigt werden? (Ich benutze das neueste Android Studio, was ich zu schätzen weiß, ist möglicherweise instabil, aber ich bin mir sicher, dass ich vor einiger Zeit ähnliches Verhalten auf Eclipse gesehen habe, aber ich habe nie die Zeit damit verbracht, es aufzuspüren; vielleicht ist es eine Java-Sache) .
Danke. Schade, dass diese dx "Optimierung" nicht im Debug-Modus entblößt werden kann. –
Es ist keine Optimierung. Es ist das Binärformat für die Dalvik VM; Sie können .class-Dateien nicht direkt auf Android ausführen. –
Nicht dx selbst; Ich meine, konnte es nicht mehrere Rückgabeanweisungen erstellen, wie im Quellcode? –