¿Cómo “sacudo” un dispositivo Android dentro del emulador de Android para abrir el menú de desarrollo para depurar mi aplicación React Native?

5 minutos de lectura

Estoy trabajando en una aplicación móvil React Native multiplataforma. Estoy escribiendo declaraciones de console.log a medida que desarrollo. Quiero ver estas declaraciones de registro en Chrome mientras ejecuto la aplicación de Android en el emulador de Android predeterminado. De acuerdo a documentos de Facebook Solo necesito “agitar el dispositivo”. ¿Cómo hago esto en el emulador de Android?

Para acceder al menú de desarrollador en la aplicación:

En iOS, agita el dispositivo o presiona control + ⌘ + z en el simulador. En Android, agite el dispositivo o presione el botón de menú de hardware (disponible en dispositivos más antiguos y en la mayoría de los emuladores, por ejemplo, en genymotion puede presionar ⌘ + m para simular un clic en el botón de menú de hardware)

avatar de usuario
ryan mcdermott

Dentro de su aplicación en el emulador de Android presione Dominio + METRO en macOS o Control + METRO en Linux y Windows.

  • Lamentablemente, F2 ya no funciona en Linux en Android Emulator 2 beta. ¿Ahora que?

    – Szczepan Hołyszewski

    30 de marzo de 2016 a las 12:15

  • @SzczepanHołyszewski Me gustaría agregar que, actualmente en Linux, ctrl + m abre el menú del desarrollador

    – Ozum Safa

    3 mayo 2016 a las 20:22

  • f1, … f12 son confusos y difíciles de presionar en la mayoría de las computadoras

    -Ericn

    19 de agosto de 2016 a las 2:39

  • Probablemente no voy a obtener ninguna respuesta sobre esto ya que este hilo es antiguo, pero lo diré de todos modos; Esto no funciona para mí. Mover el dispositivo virtualmente no se reconoce como una sacudida en mi aplicación

    – Pimv_h

    22 de abril de 2021 a las 8:05

avatar de usuario
eric

Con un React Native ejecutándose en el emulador,
Prensa control+metro (para Linux, supongo que es lo mismo para Windows y +metro para Mac OS X) o ejecute lo siguiente en la terminal:

adb shell input keyevent 82

  • No me funciona inmediatamente. Necesitaba ir a “configuración” (“…”)> Configuración> Enviar accesos directos de teclado a> Controles del emulador (no dispositivo virtual) y luego funcionó.

    – Ryan Knell

    30 de octubre de 2017 a las 4:17

  • ctrl + m no funciona en linux. Este comando adb shell funciona incluso si prefiero un atajo… supongo que puedo hacer uno que inicie este comando si no encuentro otra forma

    – Laurent

    8 de julio de 2018 a las 6:41

  • Para especificar un dispositivo, haga adb -s <device id/serial> shell input keyevent 82. Lo uso cuando uso tanto un emulador como un dispositivo físico.

    – william_grisaitis

    14 de agosto de 2019 a las 20:42

  • esta respuesta debe marcarse como la respuesta correcta ya que es más detallada

    – Parham Heidari

    4 de noviembre de 2021 a las 9:52

avatar de usuario
alan pierce

Si está utilizando el nuevo emulador que viene con Android Studio 2.0, el método abreviado de teclado para la tecla de menú ahora es Cmd+M, al igual que en Genymotion.

Alternativamente, siempre puede enviar una pulsación de botón de menú usando adb en una terminal:

adb shell input keyevent KEYCODE_MENU

También tenga en cuenta que el acceso directo del botón de menú no es un requisito estricto, es solo el comportamiento predeterminado proporcionado por el ReactActivity Clase Java (que se usa de forma predeterminada si creó su proyecto con react-native init). Aquí está el código relevante de onKeyUp en ReactActivity.java:

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

Si está agregando React Native a una aplicación existente (documentación aquí) y no estás usando ReactActivity, deberá conectar el botón de menú de manera similar. También puedes llamar ReactInstanceManager.showDevOptionsDialog a través de cualquier otro mecanismo. Por ejemplo, en una aplicación en la que estoy trabajando, agregué un elemento de menú de barra de acción solo para desarrolladores que abre el menú, ya que me parece más conveniente que agitar el dispositivo cuando trabajo en un dispositivo físico.

  • esto no funciona en MIUI en mi mi4i. simplemente abre la bandeja de aplicaciones. hay otra solucion? Realmente no quiero ejecutarlo en un emulador ya que eso ralentiza mi computadora portátil.

    – Shreyanos

    21 de abril de 2016 a las 21:19

  • parece que hay otros problemas específicos de miui. después de habilitar el permiso de notificación, ahora puedo agitar el dispositivo para obtener el menú. revise este hilo en caso de que alguien más tenga problemas con MIUI github.com/facebook/react-native/issues/2754

    – Shreyanos

    21/04/2016 a las 21:42

  • Edité mi publicación para agregar más detalles sobre cómo funciona todo esto, lo que puede ayudarlo a localizar el problema. Mi mejor conjetura es que no estás usando ReactActivity y no he conectado el botón de menú por otros medios.

    – Alan Pierce

    21/04/2016 a las 21:45

  • gracias por su pronta respuesta 🙂 aunque el problema era con el administrador de permisos MIUI que no permitía que se mostrara el cuadro de diálogo del menú.

    – Shreyanos

    21 de abril de 2016 a las 22:28

  • Buen consejo sobre ReactActivity. Parece que ese código ahora se ha movido a ReactActivityDelegate.java

    –Ryan H.

    29 de marzo de 2018 a las 15:06

avatar de usuario
Nicolás Pansardi

Para Linux, haga clic en los tres puntos “…” al lado del emulador, en Sensores virtuales marque “Mover” y luego intente mover rápidamente las coordenadas x, y o z.

ingrese la descripción de la imagen aquí

‘Ctrl + m’ funciona para Windows en el emulador de Android para abrir el menú de desarrollador de React-Native.

No pude encontrar eso documentado en ninguna parte. Encontré mi camino aquí, adiviné el resto… Buen dolor.

Por cierto: OP: No mencionaste en qué sistema operativo estabas.

avatar de usuario
Ponleu

Estoy en Mac OS, así que cuando presiono Comando, habilita la opción de zoom. Aquí está mi solución

  • Abrir ventana de configuración […] botón
  • IrSettings pestaña ->General pestaña -> Send keyboard shortcuts to campo
  • Cambiar valor a Virtual device" como se muestra en la imagen

Después de eso, concéntrese en el emulador y presione Comando + M, aparece el menú de desarrollo.

ElrBk Configuración -> General”>

avatar de usuario
VolkanSahin45

‘Command + M’ para OSX está funcionando para mí.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad