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)

Benutzer-Avatar
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

Benutzer-Avatar
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

Benutzer-Avatar
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

Benutzer-Avatar
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.

Geben Sie hier die Bildbeschreibung ein

‘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.

Benutzer-Avatar
Ponleu

Ich verwende Mac OS. Wenn ich die Befehlstaste drücke, wird die Zoomoption aktiviert. Hier ist meine Lösung

  • Konfigurationsfenster öffnen […] Taste
  • Gehe zuSettings Registerkarte ->General Registerkarte -> Send keyboard shortcuts to aufstellen
  • Wert ändern auf Virtual device" wie im Bild gezeigt

Konzentrieren Sie sich danach auf den Emulator und drücken Sie Befehlstaste + M. Das Entwicklermenü wird angezeigt.

ElrBk Einstellungen -> Allgemein”>

Benutzer-Avatar
VolkanSahin45

‘Command + M’ für OSX funktioniert bei mir.

1350300cookie-checkWie „schüttele“ ich ein Android-Gerät im Android-Emulator, um das Dev-Menü zum Debuggen meiner React Native-App aufzurufen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy