我知道正常关闭调试的方式是进入开发者菜单。问题在于,自从我打开了我正在测试的应用程序(React Native和Android模拟器)的调试功能之后,在应用程序加载时我一直看到白屏,控制台上没有任何信息,也无法访问开发者菜单以关闭调试。
所以我陷入了困境。由于JS调试似乎针对应用程序,我假设还有其他地方可以关闭它,可能在模拟器或React中。
请指教? 谢谢
我知道正常关闭调试的方式是进入开发者菜单。问题在于,自从我打开了我正在测试的应用程序(React Native和Android模拟器)的调试功能之后,在应用程序加载时我一直看到白屏,控制台上没有任何信息,也无法访问开发者菜单以关闭调试。
所以我陷入了困境。由于JS调试似乎针对应用程序,我假设还有其他地方可以关闭它,可能在模拟器或React中。
请指教? 谢谢
我之前遇到了类似的问题——远程调试初始化导致我的应用程序崩溃,而我无法通过应用程序内GUI禁用远程调试。
在将应用程序从设备(或模拟器)中卸载后,重新启动应用程序时会自动禁用远程调试。
我认为,远程调试标志保存在应用程序的共享首选项中(这些首选项在卸载后被删除)。
如果您正在使用 Windows 操作系统:按下 ctrl + m
,Mac OS 操作系统:按下 cmd + m
,iPhone/安卓设备:摇晃您的设备 ,然后查找"禁用远程调试JS" 并单击它。
前往安卓设备的设置,清除应用数据和缓存,重新加载应用程序,远程调试将会被关闭。
import { NativeModules } from 'react-native';
NativeModules.DevSettings.setIsDebuggingRemotely(false);
这是一个文档不完善的低级函数,它将强制使远程调试处于一种状态。一旦您解决了问题,我建议您删除此行代码,因为它可能会在某些奇怪的情况下导致您的应用程序进入循环并/或吞噬错误。
我也遇到了使用Expo应用程序时的同样问题。该应用程序无法启动,无法访问开发人员菜单,并且在调试远程JS时会导致应用程序崩溃。对于我来说最简单和最快速的解决方案是清除Expo中的应用数据。
对我来说(在Mac上),唯一有效的方法是去菜单栏,点击“模拟器(Simulator)”然后选择“重置内容和设置(Reset Content and Settings...)”。这确实会重置所有的内容和设置。
针对那些在使用iOS模拟器的Mac用户无法执行⌘D,因为某些错误使你卡在错误界面上的情况,你可以通过^⌘z在模拟器上模拟晃动。这将强制展开模拟器上的expo选项架,并且你可以禁用调试器,在修复完问题后重新进入应用程序,避免再次陷入调试器中。
在 Mac 上:运行 react-native for ios 后,前往
模拟器->硬件->抹掉所有内容和设置
然后前往 Vscode,
无调试运行
这使得热重载对我起作用。
在模拟器上按下Ctrl+M,然后停止调试。