Wie „schüttele“ ich ein Android-Gerät im Android-Emulator, um das Dev-Menü zum Debuggen meiner React Native-App aufzurufen
Lesezeit: 5 Minuten
Ich arbeite an einer plattformübergreifenden mobilen React Native-App. Während der Entwicklung schreibe ich console.log-Anweisungen. Ich möchte diese Protokollierungsanweisungen in Chrome sehen, während ich die Android-App im Standard-Android-Emulator ausführe. Entsprechend Facebooks Dokumente Ich muss nur “das Gerät schütteln”. Wie mache ich das im Android-Emulator?
So greifen Sie auf das In-App-Entwicklermenü zu:
Schütteln Sie unter iOS das Gerät oder drücken Sie Strg + ⌘ + z im Simulator. Schütteln Sie unter Android das Gerät oder drücken Sie die Hardware-Menütaste (verfügbar auf älteren > Geräten und in den meisten Emulatoren, z. B. in genymotion können Sie ⌘ + m drücken, um die Hardware-Menütaste zu simulieren)
Ryan McDermott
Drücken Sie innerhalb Ihrer App auf den Android-Emulator Befehl + M unter macOS bzw Strg + M unter Linux und Windows.
Leider funktioniert F2 nicht mehr unter Linux in Android Emulator 2 Beta. Was jetzt?
– Szczepan Hołyszewski
30. März 2016 um 12:15 Uhr
@SzczepanHołyszewski Ich möchte hinzufügen, dass derzeit in Linux Strg + M das Entwicklermenü aufruft
– Özum Safa
3. Mai 2016 um 20:22 Uhr
f1, … f12 sind verwirrend und auf den meisten Computern schwer zu drücken
– Ericn
19. August 2016 um 2:39 Uhr
Ich werde wahrscheinlich keine Antworten darauf bekommen, da dieser Thread uralt ist, aber ich werde es trotzdem sagen; Das funktioniert bei mir nicht. Das virtuelle Bewegen des Geräts wird in meiner Anwendung nicht als Erschütterung erkannt
– Pimv_h
22. April 2021 um 8:05 Uhr
Ericn
Wenn ein React Native im Emulator läuft,
Drücken Sie Strg+m (für Linux, ich nehme an, es ist das gleiche für Windows und ⌘+m für Mac OS X) oder führen Sie Folgendes im Terminal aus:
adb shell input keyevent 82
Funktioniert bei mir nicht sofort. Ich musste zu “Einstellungen” (“…”) > Einstellungen > Tastaturkürzel senden an > Emulatorsteuerung (nicht virtuelles Gerät) gehen, dann hat es funktioniert.
– Ryan Knell
30. Oktober 2017 um 4:17 Uhr
Strg + m funktioniert nicht unter Linux. Dieser Adb-Shell-Befehl funktioniert, auch wenn ich eine Verknüpfung bevorzugen würde … ich denke, ich kann eine erstellen, die diesen Befehl startet, wenn ich keinen anderen Weg finde
– Laurent
8. Juli 2018 um 6:41 Uhr
So geben Sie ein Gerät an adb -s <device id/serial> shell input keyevent 82. Ich verwende dies, wenn ich sowohl einen Emulator als auch ein physisches Gerät verwende.
– william_grisaitis
14. August 2019 um 20:42 Uhr
Diese Antwort sollte als die richtige Antwort markiert werden, da sie detaillierter ist
– Parham Heidari
4. November 2021 um 9:52 Uhr
Alan Pierc
Wenn Sie den neuen Emulator verwenden, der mit Android Studio 2.0 geliefert wird, lautet die Tastenkombination für die Menütaste jetzt Cmd+M, genau wie in Genymotion.
Alternativ können Sie auch immer eine Menütaste per Tastendruck senden adb in einem Endgerät:
adb shell input keyevent KEYCODE_MENU
Beachten Sie auch, dass die Tastenkombination für die Menüschaltfläche keine strikte Anforderung ist, sondern nur das Standardverhalten, das von der bereitgestellt wird ReactActivity Java-Klasse (die standardmäßig verwendet wird, wenn Sie Ihr Projekt mit erstellt haben react-native init). Hier ist der entsprechende Code von onKeyUp in ReactActivity.java:
if (keyCode == KeyEvent.KEYCODE_MENU) {
mReactInstanceManager.showDevOptionsDialog();
return true;
}
Wenn du React Native zu einer bestehenden App hinzufügst (Dokumentation hier) und Sie verwenden nicht ReactActivity, müssen Sie die Menütaste auf ähnliche Weise anschließen. Sie können auch anrufen ReactInstanceManager.showDevOptionsDialog durch irgendeinen anderen Mechanismus. Zum Beispiel habe ich in einer App, an der ich arbeite, ein Aktionsleisten-Menüelement nur für Entwickler hinzugefügt, das das Menü aufruft, da ich das bequemer finde, als das Gerät zu schütteln, wenn ich an einem physischen Gerät arbeite.
Dies funktioniert nicht mit MIUI auf meinem mi4i. Es bringt nur die App-Leiste. gibt es eine andere lösung? Ich möchte es wirklich nicht auf einem Emulator ausführen, da dies die Scheiße aus meinem Laptop verlangsamt
– Shreyans
21. April 2016 um 21:19 Uhr
Es scheint, dass es andere Probleme gibt, die für Miui spezifisch sind. Nachdem ich die Benachrichtigungsberechtigung aktiviert habe, kann ich das Gerät jetzt schütteln, um das Menü aufzurufen. Überprüfen Sie diesen Thread, falls jemand anderes Probleme mit MIUI hat github.com/facebook/react-native/issues/2754
– Shreyans
21. April 2016 um 21:42 Uhr
Ich habe meinen Beitrag bearbeitet, um mehr Details darüber hinzuzufügen, wie all diese Dinge funktionieren, was Ihnen helfen kann, das Problem aufzuspüren. Meine beste Vermutung ist, dass Sie nicht verwenden ReactActivity und habe die Menütaste nicht auf andere Weise angeschlossen.
– Alan Pierce
21. April 2016 um 21:45 Uhr
vielen Dank für Ihre schnelle Antwort 🙂 obwohl das Problem mit dem MIUI-Berechtigungsmanager auftrat, der den Menüdialog nicht anzeigen ließ.
– Shreyans
21. April 2016 um 22:28 Uhr
Netter Tipp zu ReactActivity. Scheint, als ob dieser Code jetzt nach ReactActivityDelegate.java verschoben wurde
–Ryan H.
29. März 2018 um 15:06 Uhr
Nikolaus Pansardi
Für Linux klicken Sie auf die drei Punkte “…” neben dem Emulator, aktivieren Sie bei Virtuelle Sensoren “Verschieben” und versuchen Sie dann, schnell entweder die x-, y- oder z-Koordinaten zu verschieben.
‘Strg + m’ funktioniert für Windows im Android-Emulator, um das React-Native-Entwicklermenü aufzurufen.
Konnte das nirgendwo dokumentiert finden. Habe mich hierher gefunden, den Rest erraten … Meine Güte.
Übrigens: OP: Du hast nicht erwähnt, auf welchem Betriebssystem du warst.
Ponleu
Ich verwende Mac OS. Wenn ich die Befehlstaste drücke, wird die Zoomoption aktiviert. Hier ist meine Lösung