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

问题描述 投票:0回答:13

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

访问应用内开发者菜单:

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

android android-emulator react-native
13个回答
318
投票

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


276
投票

在模拟器中运行 React Native,
ctrl+m (对于 Linux,我想对于 Windows 来说是相同的,对于 Mac OS X 来说是 +m) 或在终端中运行以下命令:

adb shell input keyevent 82

83
投票

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

或者,您始终可以在终端中使用

adb
发送菜单按钮按下操作:

adb shell input keyevent KEYCODE_MENU

另请注意,菜单按钮快捷方式并不是严格要求,它只是

ReactActivity
Java 类提供的默认行为(如果您使用
react-native init
创建项目,则默认使用该类)。这是
onKeyUp
ReactActivity.java
的相关代码:

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

如果您要将 React Native 添加到现有应用程序(此处的文档)并且您没有使用

ReactActivity
,则需要以类似的方式挂接菜单按钮。您还可以通过任何其他机制调用
ReactInstanceManager.showDevOptionsDialog
。例如,在我正在开发的应用程序中,我添加了一个仅用于开发的操作栏菜单项来调出菜单,因为我发现这比在物理设备上工作时摇动设备更方便。


39
投票

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

enter image description here


22
投票

“Ctrl + m”适用于 Android 模拟器中的 Windows,可调出 React-Native 开发人员菜单。

在任何地方都找不到该记录。 找到了这里的路,猜到了其余的......天啊。

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


17
投票

在开发 React Native 应用程序时,我们经常使用终端

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

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

我点击了$纱线菜单

让菜单出现在模拟器上 它将通过 ADB 将键码 82 转发到模拟器 这不是最佳方式,但我喜欢它并愿意分享它。

enter image description here


16
投票

我使用的是 Mac 操作系统,因此当我按下 Command 时,它会启用缩放选项。 这是我的解决方案

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

之后,将焦点放在模拟器上并按 Command + M,将出现开发菜单。

Emulator Option ->“设置”->“常规”/></a></p>
    </answer>
<answer tick=

如果你想从终端模拟 1 秒的震动,可以使用以下命令:

adb emu sensor set acceleration 100:100:100; sleep 1; adb emu sensor set acceleration 0:0:0

11
投票

OSX 的“Command + M”对我有用。


7
投票

对于那些

Command + M
只是最小化模拟器的人:

  1. 退出模拟器
  2. 转到设置>工具>模拟器并取消选中
    Launch in a tool window
    复选框
  3. 打开模拟器
  4. 现在
    Command + M
    将打开开发者菜单

4
投票

在 MAC 上使用

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


4
投票

在 Linux 上,Ctrl+M 应该可以工作,但事实并非如此。要解决该问题,请单击“...”(其扩展控件),然后关闭该窗口。现在您可以按 Ctrl+M 打开菜单。请按照以下步骤操作:

  1. 单击“...”(其扩展控件)。
  2. 关闭扩展控件。
  3. 按 Ctrl+M。

1
投票

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

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>
    );
  }
}

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


1
投票

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

 进行 
release

构建

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

© www.soinside.com 2019 - 2024. All rights reserved.