我正在开发一个跨平台的React Native移动应用程序。我在开发过程中编写console.log语句。我想在Chrome中看到这些日志语句,而我在默认的Android模拟器中运行Android应用程序。根据Facebook的文件,我只需要“摇动设备”。如何在Android模拟器中做到这一点?

要访问应用程序内开发者菜单: 在iOS中摇晃设备或在模拟器中按control +⌘+ z。 在Android上摇晃设备或按硬件菜单按钮(在较旧的>设备和大多数模拟器上可用,例如在genymotion中,您可以按⌘+ m到>模拟硬件菜单按钮单击)


当前回答

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

或者,你可以在终端中使用adb发送一个菜单按钮:

adb shell input keyevent KEYCODE_MENU

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

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

如果你正在将React Native添加到一个现有的应用程序(文档在这里),而你没有使用ReactActivity,你将需要以类似的方式连接菜单按钮。你也可以调用ReactInstanceManager。通过任何其他机制显示devoptionsdialog。例如,在我正在开发的一个应用程序中,我添加了一个仅供开发人员使用的动作栏菜单项,它会弹出菜单,因为我发现在物理设备上工作时,这比摇晃设备更方便。

其他回答

在Linux上,ctrl+m应该可以工作,但它不能解决这个问题,单击(…)(它的扩展控件),然后关闭该窗口。现在你可以用ctrl+m打开菜单。然后:

点击(…)(它的扩展控件) 关闭扩展控件 ctrl + m

在MAC上使用命令+ m(cmd + m)。也要确保当你试图访问调试菜单时,你正在访问你的应用程序。你的应用程序必须正在运行,否则Cmd + M只会返回通常的普通电话菜单。

在开发react原生应用程序时,我们经常摆弄终端

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

"menu": "adb shell input keyevent 82"

然后点击$ yarn菜单

使菜单显示在模拟器上 它将通过ADB将键码82转发给模拟器 不是最佳的方式,但我喜欢它,感觉分享它。

在Android模拟器中的应用程序中,在macOS中按Command + M,在Linux和Windows中按Ctrl + M。

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

或者,你可以在终端中使用adb发送一个菜单按钮:

adb shell input keyevent KEYCODE_MENU

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

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

如果你正在将React Native添加到一个现有的应用程序(文档在这里),而你没有使用ReactActivity,你将需要以类似的方式连接菜单按钮。你也可以调用ReactInstanceManager。通过任何其他机制显示devoptionsdialog。例如,在我正在开发的一个应用程序中,我添加了一个仅供开发人员使用的动作栏菜单项,它会弹出菜单,因为我发现在物理设备上工作时,这比摇晃设备更方便。