2015-09-30 9 views
10

Ich arbeite mit Google Leanback-Bibliothek für Android TV und ich versuche herauszufinden, wie Sie am besten für die Tasten auf der Fernbedienung (vor allem diejenigen, die nicht von der MediaSession erfasst werden) zu hören.Android Studio: "Frame ist nicht verfügbar"?

Aus diesem Grund habe ich einen Breakpoint in BaseGridView.dispatchTouchEvent() und wenn ich eine der Remote-Tasten drücke, springt der Debugger tatsächlich zu diesem Punkt und zeigt mir die üblichen Debug-Informationen.

Nach einigen (2-5) Sekunden verschwindet jedoch die Debug-Info und wird durch die Meldung "Frame is not available" ersetzt.

An anderen Stellen funktioniert der Debugger gut, also habe ich mich gefragt, ob die vom Debugger verursachte Verzögerung als ANR gezählt wird und die App daher zwangsweise geschlossen wird?

In jedem Fall gibt es einen Weg, um dies zu umgehen?

+0

haben Sie irgendeine Lösung dafür gefunden. Ich sehe dasselbe auf meinem Rechner, während der gleiche Code auf dem anderen Rechner funktioniert (Bilder verschwinden nicht). – CodingRat

+0

Nein, ich fürchte nicht ...Aber ich wusste nicht, dass der Fehler von der Maschine abhängig war - ich dachte, dass es nur mit einigen Aspekten des Codes zusammenhing ... –

Antwort

2

Die Meldung "Frames nicht verfügbar" bedeutet, dass keine Frames mehr zum Debuggen verfügbar sind. Die Android Studio Hilfe stellt klar, das Ziel des Rahmenfensters und den Rahmen im Bereich:

Der Frames Bereich ermöglicht Sie den Zugriff auf die Liste der Themen Ihrer Anwendung zu gewinnen, den Export in eine Textdatei und Faden Präsentation anpassen . Für jeden Thread können Sie den Stapelrahmen anzeigen, Rahmen untersuchen, zwischen Rahmen navigieren und automatisch zum Quellcode des Rahmens im Editor springen. Sie können einen Thread über die Dropdown-Liste für die Threadauswahl am oberen Rand des Bereichs auswählen. Der Status und der Typ eines Threads werden durch ein spezielles Symbol und eine Textnotiz neben dem Namen des Threads angezeigt.

Jetzt, da Sie keine Frames verfügbar haben, bedeutet dies, dass alle Frames zum Debuggen geschlossen sind. Könnte darauf zurückzuführen sein, dass die App in dieser Richtung geschlossen ist oder sich an dieser Leitung falsch verhält. Versuchen Sie, die Anweisung zu debuggen, nach der dies geschieht, um dieses Verhalten zu beseitigen. Hoffe, es

3

hilft diese Nachricht, weil u gesetzt zu viele Haltepunkte angezeigt wird, und Threads Daten aus anderen Threads warten, dies zu regeln, einige Stützpunkte aufheben könnte und das Warten auf die Daten bereit sein ...

+0

Ich habe Breakpoints in verschiedenen Threads gesetzt, während ich auf Antwort wartete, Ihr Tipp behob mein Problem – abdimuna

1

Mit dem gleichen Problem funktioniert AS neu starten für mich.

0

Wenn Sie die Meldung "Frames nicht verfügbar" erhalten, bedeutet dies, dass keine Frames mehr zum Debuggen verfügbar sind. Die Frames sind Teil des Debugging von Android Studio, mit dem Sie auf die Liste der Threads zugreifen können, die in Ihrer Anwendung ausgeführt werden. Es ist die lange Liste der Prozesse, die Sie im Debugging-Fenster sehen. Was passiert ist also, dass Android Studio vor dem Setzen des Haltepunkts die Kenntnis der Threads verliert, die es hatte, als Sie ausstiegen. Dies könnte in Ihrem Fall passieren, da standardmäßig beim Setzen eines Haltepunkts die Ausführung aller Threads gestoppt wird. Wenn Sie aussteigen, verlassen sich die folgenden Threads auf die zuvor verwendeten Threads, wodurch die App geschlossen wird. Da Sie Ihren Haltepunkt bei getCurrentDetails setzen, ist meine beste Annahme, dass es die Antwort von OKHttp nicht rechtzeitig erhalten hat, da es in einem Hintergrundthread passiert. Sie können zwei Dinge versuchen, um es zum Laufen zu bringen. Versuchen Sie zunächst, mit der rechten Maustaste auf den Haltepunkt zu klicken und ändern Sie den Haltepunkt, indem Sie alle Threads auf diesen Thread setzen. Dies sollte OKHttp erlauben, die Antwort rechtzeitig zu erhalten, bevor es abgeschnitten wird. Oder verschieben Sie den Haltepunkt weiter nach unten und sehen Sie, ob es funktioniert.

Verwandte Themen