wake-up-neo.com

Wie "schütteln" Sie ein Android-Gerät im Android-Emulator, um das Dev-Menü aufzurufen und meine React Native-App zu debuggen

Ich arbeite an einer plattformübergreifenden mobilen App React Native. Ich schreibe Console.log-Anweisungen während ich entwickle. Ich möchte diese Protokollierungsaussagen in Chrome anzeigen, während ich die Android-App im Standard-Emulator von Android ausgeführt habe. Laut Facebooks Dokumenten muss ich 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 im Simulator Strg + ⌘ + z . Schütteln Sie das Gerät unter Android oder drücken Sie die Hardware-Menütaste (verfügbar auf älteren> Geräten und in den meisten Emulatoren, z. B. können Sie bei genymotion ⌘ + m drücken, um den Klick auf die Hardware-Menütaste zu simulieren.)

144
Austin

Drücken Sie in Ihrer App im Android Emulator Command + M unter OSX oder Ctrl + M unter Linux und Windows.

125
Ryan McDermott

Wenn ein React Native im Emulator ausgeführt wird,
Drücken Sie ctrl+m (Für Linux ist es wahrscheinlich dasselbe für Windows und +m für Mac OS X) oder führen Sie im Terminal Folgendes aus:

adb Shell input keyevent 82
195
ericn

Wenn Sie den neuen Emulator von Android Studio 2.0 verwenden, lautet die Tastenkombination für die Menütaste jetzt Cmd + M, genau wie in Genymotion.

Alternativ können Sie jederzeit eine Menütaste per adb in einem Terminal drücken:

adb Shell input keyevent KEYCODE_MENU

Beachten Sie auch, dass die Tastenkombination für die Menütaste keine strikte Anforderung ist, sondern lediglich das Standardverhalten der Java-Klasse ReactActivity (die standardmäßig verwendet wird, wenn Sie Ihr Projekt mit react-native init erstellt haben). Hier ist der relevante Code von onKeyUp in ReactActivity.Java:

if (keyCode == KeyEvent.KEYCODE_MENU) {
  mReactInstanceManager.showDevOptionsDialog();
  return true;
}

Wenn Sie React Native zu einer vorhandenen App hinzufügen ( Dokumentation hier ) und ReactActivity nicht verwenden, müssen Sie die Menüschaltfläche auf ähnliche Weise anschließen. Sie können ReactInstanceManager.showDevOptionsDialog auch über einen anderen Mechanismus aufrufen. In einer App, an der ich gerade arbeite, habe ich zum Beispiel ein Menüelement für die Aktionsleiste hinzugefügt, das das Menü öffnet, da ich es für bequemer finde, das Gerät zu schütteln, wenn ich an einem physikalischen Gerät arbeite.

74
Alan Pierce

'Strg + m' funktioniert für Windows im Android-Emulator, um das React-Native-Entwicklermenü aufzurufen.

Konnte das nirgendwo dokumentiert finden ... Ich fand meinen Weg hier, ahnte den Rest ... Guter Kummer.

Übrigens: OP: Sie haben nicht erwähnt, auf welchem ​​Betriebssystem Sie sich befanden.

21
spechter

'Command + M' für OSX arbeitet für mich.

8
VolkanSahin45

Verwenden Sie command + m(cmd + M) auf dem MAC. Auch make sure that you are accessing your application while you try to access the Debug Menui.e. Ihre App muss ausgeführt werden, da ansonsten Cmd + M das normale Telefonmenü wiedergibt. 

4
Awesome

Bei Linux klicken Sie auf die drei Punkte "..." neben dem Emulator, klicken Sie auf "Virtuelle Sensoren" und dann "Verschieben". Versuchen Sie dann, die X-, Y- oder Z-Koordinaten schnell zu verschieben.

 enter image description here

3

Ich bin unter Mac OS. Wenn ich also die Befehlstaste drücke, wird die Zoom-Option aktiviert. Hier ist meine Lösung

  • Konfigurationsfenster öffnen [...]
  • Gehen Sie zu Settings tab -> General tab -> Send keyboard shortcuts to
  • Ändern Sie den Wert in Virtual device" wie in der Abbildung gezeigt

Nach diesem Fokus auf dem Emulator und Drücken von Befehlstaste + M wird das Dev-Menü angezeigt.

 Emulator Option -> Settings -> General

2
Leu

unter Linux sollte ctrl + m funktionieren, aber nicht zur Lösung des Problems klicken Sie auf (...) (seine erweiterten Steuerelemente) und schließen Sie das Fenster. dann:

  1. klicken Sie auf das (...) (seine erweiterten Steuerelemente)

  2. erweiterte Steuerelemente schließen

  3. strg + m

1

Es ist vielleicht keine direkte Lösung, aber ich habe eine Bibliothek erstellt, mit der Sie 3 Finger berühren können , anstatt zu schütteln , um das Dev-Menü zu öffnen, wenn Sie sich in befinden Entwicklungsmodus

https://github.com/pie6k/react-native-dev-menu-on-touch

Sie müssen Ihre App nur in Folgendes einwickeln:

importieren Sie DevMenuOnTouch aus dem 'React-Native-Dev-Menu-On-Touch'. // oder: {DevMenuOnTouch} aus 'Native-Dev-Menü-auf-Berührung-reagieren' importieren

class YourRootApp extends Component {
  render() {
    return (
      <DevMenuOnTouch>
        <YourApp />
      </DevMenuOnTouch>
    );
  }
}

Dies ist sehr nützlich, wenn Sie auf einem echten Gerät debuggen müssen und Kollegen neben Ihnen sitzen.

1
pie6k

Für Windows-Laptops Fn Taste + Strg + m

0
UMUT

Ich habe versucht, einen Release Build über adb install -r -d <app-release>.apk ????

Stellen Sie sicher, dass Sie den Build Debug ausführen, dann funktioniert das Menü über die Verknüpfung oder die CLI.

0
Leo