我正在开发一个跨平台的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。例如,在我正在开发的一个应用程序中,我添加了一个仅供开发人员使用的动作栏菜单项,它会弹出菜单,因为我发现在物理设备上工作时,这比摇晃设备更方便。
这可能不是直接的解决方案,但我已经创建了一个库,允许您使用3个手指触摸而不是摇晃打开开发菜单时,在开发模式
https://github.com/pie6k/react-native-dev-menu-on-touch
你只需要在里面包装你的应用程序:
从react-native-dev-menu-on-touch导入DevMenuOnTouch;
//或:import {DevMenuOnTouch} from 'react-native-dev-menu-on-touch'
class YourRootApp extends Component {
render() {
return (
<DevMenuOnTouch>
<YourApp />
</DevMenuOnTouch>
);
}
}
当你必须在真正的设备上调试并且你有同事坐在你旁边时,它真的很有用。