我正在开发一个跨平台的 React Native 移动应用程序。我在开发时正在编写 console.log 语句。当我在默认 Android 模拟器中运行 Android 应用程序时,我想在 Chrome 中查看这些日志记录语句。根据 Facebook 的文档,我只需要“摇动设备”。如何在 Android 模拟器中执行此操作?
访问应用内开发者菜单:
在 iOS 上摇动设备或在模拟器中按 control + ⌘ + z。 在 Android 上摇动设备或按硬件菜单按钮(可在较旧的 > 设备和大多数模拟器中使用,例如在 genymotion 中,您可以按 ⌘ + m 来 > 模拟硬件菜单按钮单击)
在 Android 模拟器的应用程序中,按 Command + M(macOS)或 Ctrl + M(Linux 和 Windows)。
在模拟器中运行 React Native,
按 ctrl+m (对于 Linux,我想对于 Windows 来说是相同的,对于 Mac OS X 来说是 ⌘+m)
或在终端中运行以下命令:
adb shell input keyevent 82
如果您使用的是 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
。例如,在我正在开发的应用程序中,我添加了一个仅用于开发的操作栏菜单项来调出菜单,因为我发现这比在物理设备上工作时摇动设备更方便。
“Ctrl + m”适用于 Android 模拟器中的 Windows,可调出 React-Native 开发人员菜单。
在任何地方都找不到该记录。 找到了这里的路,猜到了其余的......天啊。
顺便说一句:OP:你没有提到你使用的操作系统。
我使用的是 Mac 操作系统,因此当我按下 Command 时,它会启用缩放选项。 这是我的解决方案
Settings
选项卡 ->General
选项卡 -> Send keyboard shortcuts to
字段Virtual device"
,如图所示之后,将焦点放在模拟器上并按 Command + M,将出现开发菜单。
adb emu sensor set acceleration 100:100:100; sleep 1; adb emu sensor set acceleration 0:0:0
OSX 的“Command + M”对我有用。
对于那些
Command + M
只是最小化模拟器的人:
Launch in a tool window
复选框Command + M
将打开开发者菜单在 MAC 上使用
command + m(cmd + M)
。还有make sure that you are accessing your application while you try to access the Debug Menu
即您的应用程序必须正在运行,否则 Cmd + M
将仅返回通常的普通电话菜单。
在 Linux 上,Ctrl+M 应该可以工作,但事实并非如此。要解决该问题,请单击“...”(其扩展控件),然后关闭该窗口。现在您可以按 Ctrl+M 打开菜单。请按照以下步骤操作:
这可能不是直接的解决方案,但我创建了一个库,允许您在开发模式下使用 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>
);
}
}
当您必须在真实设备上调试并且有同事坐在您旁边时,它非常有用。
我正在尝试通过 adb install -r -d <app-release>.apk
🤦
进行release 构建
确保您正在运行 debug 构建,然后菜单将通过快捷方式或 CLI 运行。