如何在React-Native中禁用远程JS调试

Got*_*tts 13 remote-debugging javascript-debugger react-native-android

我意识到禁用调试的常用方法是进入开发人员菜单.问题是,因为我打开我的应用程序的调试我正在测试(React Native和Android模拟器)我在应用程序加载时没有控制台上的信息并且无法访问开发菜单以关闭调试.

所以我被困住了.SInce JS调试seens特定于App我假设在模拟器中有其他东西,或者我可以关闭它的反应.

请指教?谢谢

max*_*ann 13

我只是遇到了类似的问题 - 远程调试器初始化使我的应用程序崩溃,我无法通过应用内GUI禁用远程调试.

从设备(或模拟器)卸载应用程序后,再次启动应用程序时禁用了远程调试.

我假设远程调试标志与应用程序的共享首选项一起保存(卸载后会被删除).

  • 这应该被接受的答案。我不明白为什么其他类似的答案被否决了。Ctrl/Cmd + M 不起作用,因为应用程序被卡住了,OP 这么说(我也遇到了同样的问题)...当您(不小心)打开远程调试时,它会存储在应用程序内。无需重置整个模拟器,只需卸载应用程序并重新构建即可。我没有遇到更快的解决方案。 (3认同)

Chr*_*ois 12

将此添加到您应用程序的入口点

import { NativeModules } from 'react-native';
NativeModules.DevSettings.setIsDebuggingRemotely(false);
Run Code Online (Sandbox Code Playgroud)

这是一个记录很少的低级函数,它将强制远程调试处于一种状态。一旦您摆脱困境,我建议您删除此行,因为它可能会导致您的应用程序陷入循环和/或在某些奇怪的情况下吞下错误。


小智 11

使用 Expo 应用程序遇到了同样的问题。应用程序无法启动,无法访问开发人员菜单,并且调试远程 js 不断导致应用程序崩溃。对我来说最简单、最快的解决方案是清除 Expo 中的应用程序数据

  • 如果您包含**如何**清除 Expo 中的应用程序数据,那就太好了。 (3认同)

kno*_*nod 7

唯一对我有用(在 Mac 上)的方法是将菜单栏向上并单击“模拟器”,然后单击“重置内容和设置...”。不过,它确实重置了所有内容和设置。

  • @OmG:这对你不起作用吗?当我这样做时,它确实重置了调试,从而禁用了它。我没有找到任何其他方式来访问任何可以让我执行请求的选项。如果有什么我可以澄清的,请告诉我。 (3认同)

小智 6

对于那些在 Mac 上使用 iOS 模拟器而无法执行 \xe2\x8c\x98D 的用户,因为某些错误使您卡在错误屏幕上,您可以使用 ^\xe2\x8c\x98z 在模拟器上模拟摇晃。这将强制在您的模拟器上打开 expo 的架子选项,您可以禁用调试器,返回到您的应用程序并修复您必须修复的任何内容,然后再次卡在调试器中。

\n


小智 5

如果您在MS:ctrl + m,MAC OS:cmd + m,iPhone / android上使用: 摇动设备, 然后查找“禁用远程调试JS ”,然后单击它。

  • cmd + m 只是最小化窗口。cmd + d 是做什么的,谢谢@loekTheDreamer (4认同)
  • cmd + d 然后禁用远程调试器 (2认同)

小智 5

在Mac上:然后运行react-native for ios,转到

模拟器->硬件->擦除所有内容和设置

然后进入Vscode,

无需调试即可运行

这使得热重载对我有用。


小智 5

抱歉,这来得太晚了,但它会在未来帮助其他人。如果您遇到此问题,只需卸载移动设备或模拟器上的 expo 客户端应用程序,然后再次安装 expo 应用程序即可解决此问题。


小智 5

只需在模拟器上按 ctrl+m 即可停止调试

  • 对我来说这是行不通的。它什么也不做。调试器仍然打开。 (2认同)

小智 5

转到您的android设置并清除应用程序数据和缓存并重新加载应用程序远程调试将被关闭。