我该如何“摇”;Android模拟器中的Android设备,打开dev菜单来调试我的React Native应用程序

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

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

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

150550 次浏览

在Android模拟器中的应用程序中,在macOS中按命令 + ,在Linux和Windows中按Ctrl +

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

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

adb shell input keyevent KEYCODE_MENU

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

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

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

在模拟器中运行React Native时,
ctrl+(对于Linux,我认为对于Windows和Mac OS X的+是一样的) 或者在terminal中执行以下命令:

adb shell input keyevent 82

“Ctrl + m”适用于Windows在Android模拟器中打开React-Native开发人员菜单。

在任何地方都找不到文档。 找到了路,猜到了剩下的…好悲伤。< / p >

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

“命令+ M”的OSX是为我工作。

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

  1. 点击(…)(它的扩展控件)

  2. 关闭扩展控件

  3. ctrl + m

在MAC上使用command + m(cmd + M)。你的应用程序必须正在运行,否则Cmd + M将返回通常的普通电话菜单。

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

enter image description here

我在Mac OS上,所以当我按下命令时,它启用缩放选项。 这是我的解决方案

  • 打开配置窗口[…]]按钮
  • 进入“__abc0”页签->“General”页签->“Send keyboard shortcuts to”字段
  • 如图所示,将value更改为Virtual device"

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

模拟器选项->设置→一般 < / >

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

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

你只需要在里面包装你的应用程序:

import DevMenuOnTouch from 'react-native-dev-menu-on-touch'; //或:import {DevMenuOnTouch} from 'react-native-dev-menu-on-touch'

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

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

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

确保你正在运行调试构建,然后菜单将通过快捷方式或CLI工作。

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

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

"menu": "adb shell input keyevent 82"

然后我点击$ yarn菜单

表示菜单出现在模拟器上 它将通过ADB将键码82转发给模拟器 不是最佳的方式,但我喜欢,想分享它

enter image description here

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

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