如何在Android模拟器中“摇动”Android设备以显示开发菜单以调试我的React Native应用程序

时间:2015-10-02 19:41:18

标签: android android-emulator react-native

我正在开发一个跨平台的React Native移动应用程序。我在开发时正在编写console.log语句。我想在默认的Android模拟器中运行Android应用时在Chrome中看到这些日志记录语句。根据{{​​3}},我只需要“摇动设备”。我如何在Android模拟器中执行此操作?

  

要访问应用内开发者菜单:

     

在iOS上摇动设备或在模拟器中按控制键+⌘+ z。   在Android上摇动设备或按硬件菜单按钮(在较旧的>设备和大多数模拟器中可用,例如在genymotion中,您可以按⌘+ m到>模拟硬件菜单按钮点击)

13 个答案:

答案 0 :(得分:194)

在模拟器中运行React Native,
ctrl + m (对于Linux,我认为对于Windows,它是相同的,对于Mac OS, + m X) 或在终端中运行以下内容:

adb shell input keyevent 82

答案 1 :(得分:153)

在Android模拟器的应用中,在OSX上按Command + M或在Linux和Windows上按Ctrl + M

答案 2 :(得分:74)

如果您使用的是Android Studio 2.0附带的新模拟器,则菜单键的键盘快捷键现在为Cmd + M,就像在Genymotion中一样。

或者,您始终可以使用终端中的adb发送菜单按钮:

adb shell input keyevent KEYCODE_MENU

另请注意,菜单按钮快捷方式不是严格要求,它只是ReactActivity Java类提供的默认行为(如果您使用react-native init创建项目,则默认使用该类) 。以下是onKeyUpReactActivity.java的相关代码:

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

如果您要将React Native添加到现有应用(documentation here)并且未使用ReactActivity,则需要以类似的方式挂起菜单按钮。您也可以通过任何其他机制呼叫ReactInstanceManager.showDevOptionsDialog。例如,在我正在处理的应用程序中,我添加了一个仅启用操作栏的菜单项,用于显示菜单,因为我发现在物理设备上工作时比摇动设备更方便。

答案 3 :(得分:21)

' Ctrl + m'适用于Android模拟器中的Windows ,以显示React-Native开发人员菜单。

无法在任何地方找到记录。 找到了我的路,猜到了其余的......好悲伤。

顺便说一下:OP:你没有提到你所使用的操作系统。

答案 4 :(得分:9)

OSX的'Command + M'对我有用。

答案 5 :(得分:7)

对于Linux,您点击模拟器旁边的三个点“ ...”,在虚拟传感器上选中“移动”,然后尝试快速移动x,y或z坐标。

enter image description here

答案 6 :(得分:5)

在开发响应本机应用程序时,我们在终端上玩了很多

所以我在 package.json 文件中的脚本中添加了一个脚本

“菜单”:“ adb shell输入keyevent 82”

然后我点击 $纱线菜单

菜单显示在模拟器上 它将通过ADB将键码82转发给仿真器 不是最佳方式,但我喜欢它,并觉得可以分享。

enter image description here

答案 7 :(得分:4)

在MAC上使用command + m(cmd + M)。还make sure that you are accessing your application while you try to access the Debug Menu即。您的应用必须正在运行,否则Cmd + M将返回通常的普通电话菜单。

答案 8 :(得分:3)

我在Mac OS上,因此当我按Command时,它将启用缩放选项。 这是我的解决方法

  • 打开配置窗口[...]按钮
  • 转到Settings标签-> General标签-> Send keyboard shortcuts to字段
  • 如图所示将值更改为Virtual device"

将焦点放在仿真器上并按Command + M之后,将显示开发菜单。

Emulator Option -> Settings -> General

答案 9 :(得分:1)

在linux上ctrl + m应该可以工作但它不能解决问题点击(...)(它的扩展控件)然后关闭那个窗口。现在你可以通过ctrl + m打开菜单。然后:

  1. 点击(...)(其扩展控件)

  2. 关闭扩展控件

  3. CTRL + M

答案 10 :(得分:0)

适用于Windows笔记本电脑 fn Key + Control + m

答案 11 :(得分:0)

这可能不是直接的解决方案,但是我创建了一个库,该库允许您在开发模式下使用三指触摸而不是摇动来打开开发菜单

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

您只需要将应用程序包装在其中:

从'react-native-dev-menu-on-touch'导入DevMenuOnTouch; //或:从'react-native-dev-menu-on-touch'导入{DevMenuOnTouch}

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

当您必须在真实设备上调试并且有同事坐在您旁边时,这真的很有用。

答案 12 :(得分:0)

我正在尝试通过adb install -r -d <app-release>.apk?

构建 release 版本

确保您正在运行 debug 构建,然后菜单将通过快捷方式或CLI起作用。