Windows 从 expo 连接时出现防火墙问题

Windows Firewall issue when connecting from expo

我在 VS android 模拟器和 Android 硬件设备上从 expo 连接到 react-native packager 时遇到 windows 防火墙问题。

我在 Expo 中遇到的错误是 "Uncaught Error: Packager is not running at http:/192.168.1.8:19001"。

这不是 中记录的 Expo 的常见连接问题。我已经躺在那张病床上了。我现在已经像这样设置了我的环境变量...

set REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.8

这是全新的东西。在上次 windows 更新之前一切正常。我知道这是一个 windows 防火墙问题的原因是,当我关闭防火墙时,一切都会开始工作。

但这不是解决方法。我真的很想重新打开我的防火墙。我查看了防火墙规则,在入站规则中看到了 Expo XDE 和 Node.js。

真正的解决方法是什么?我感觉很多人突然遇到了这个问题。

好的。所以问题竟然是多次安装node.js。我的防火墙对 node.js 的一个安装有规则,而 react-native 使用另一个安装。

因此防火墙具有 Visual Studio 安装的 node.js 安装的入站规则。这个安装比 node.js 的较新安装要旧,我安装它是为了让 react-native 工作。

因此,为了解决这个问题,我不得不更改 node.exe 的入站防火墙规则,以指定指向较新而不是较旧安装 node.exe 的路径。

剩下的谜团是为什么在 react-native 正常工作时这突然成为一个问题。我怀疑是最近的 windows 更新,但我没有看到该更新中对 Windows 防火墙的任何更改。

所以我学到了什么:(1) 即使 Windows 防火墙打开了通知,它也不会在阻止现有规则中指定的进程的入站连接时通知您; (2) 我确实需要注意同一工具集的多次安装。 node.js 的多次安装是此问题的根本问题,我最近遇到了 Android 工具 adb.exe

的多次安装问题

设备无法连接到开发服务器是由于 windows 防火墙高级安全阻止 node.js javascript 运行时和/或 node.js [=23] 的多个安装=] 入站规则中的运行时。

转到 windows 防火墙高级安全性,转到入站规则 在列表中检查 node.js javascript runtime 的多个安装,删除所有 node.js javascript runtime 的多个安装 检查是否检查了 node.js 运行时,如果没有,请右键单击并转到属性 在操作下检查以允许连接

这解决了我的问题。