Expo LAN配置不适用于New ReactNative Project

时间:2017-12-25 08:12:24

标签: react-native react-native-android expo

我在Stackoverflow上看到过类似的问题,但没有对问题进行排序。我刚从Expo桌面应用程序创建了新的ReactNative项目。但是,当Expo配置设置为LAN模式时,我无法通过QR代码扫描在我的Android手机上运行它。这似乎无法在我的Android手机上访问(看起来像)。我的手机在同一个Wifi网络上。

我还试图通过关闭防火墙来运行Expo演示应用程序,但仍然没有成功。我相信你的技术外观可能会影响我的问题。

注意:世博隧道已关闭,这就是它在局域网模式下加载的原因。几天前我尝试了隧道模式。但是,当时局域网也没有用。所以可能任何人都可以指出我正确的方向,所以我可以在局域网模式下运行(在同一个Wifi网络上的电话和机器上)。

My IP Config

Expo Desktop App

Expo App when tries to load demo app after scanning QR code

Netstat command result for port 19000

13 个答案:

答案 0 :(得分:12)

我不确定这是否对您有帮助,但就我而言,这对我有帮助,因此您也可以尝试以下方法:

1:首先,您必须提高WiFi适配器的优先级(接口指标)

转到控制面板>网络和Internet>网络连接

步骤1)如上图所示,右键单击Wi-Fi,然后右键单击>单击“属性”

steps 1 screenshot

步骤2)选择“ Internet协议版本4”,然后单击“属性”

steps 2 screenshot

步骤3)点击>高级

steps 3 screenshot

第4步)

  1. 取消选中“自动指标”
  2. 在“接口指标”中输入5
  3. 单击确定

steps 4 screenshot

2:您必须将wifi网络配置文件从“公开”更改为“私有”

步骤1)从可用的WiFi无效状态中选择您的网络,然后点击属性

steps 2 screenshot

第2步)将网络配置文件从“公开”更改为“私有”

steps 2 screenshot

这就是现在在LAN上运行您的expo项目,它将100%工作的

要获得更多帮助,您可以与我联系

电子邮件:iamgovindthakur@gmail.com

github:https://github.com/iamgovindthakur/

答案 1 :(得分:7)

您的Android手机无法访问服务器,因为虚拟适配器网络正在用作首选子网。

增加WiFi适配器优先级,它应该运行正常。 (取消选中“高级适配器”设置中的“自动指标”,并为接口指标指定较小的数字)。看到这个链接: https://answers.microsoft.com/en-us/windows/forum/windows_10-networking/adapter-priority-setting-unavailable-in-windows-10/d2b63caa-e77c-4b46-88b5-eeeaee00c306?auth=1

答案 2 :(得分:5)

在通过XDE桌面应用程序挣扎但没有成功。最后决定尝试这里提到的Expo CLI工具:https://expo.io/learn 只需几个简单的步骤,它就为我创建了第一个演示项目。

在此处按照CLI命令执行:https://docs.expo.io/versions/latest/guides/exp-cli.html 我现在能够用简单的命令运行我的第一个演示应用程序,例如exp start --dev --lan,与XDE(Expo Desktop)应用程序在LAN和开发人员模式下配置设置的工作相同。

  

我已经完成了所有可能的解决方案,但除了Expo CLI工具之外,我没有为我设置LAN连接。任何人面临类似的问题?请试试CLI。但请确保检查网络适配器优先级设置(因为VMWare / VBox网络适配器的优先级确实会产生问题)。由@mano提出。

答案 3 :(得分:1)

我在Ubuntu / Crouton设置上大致存在这个问题,问题是我有一个本地防火墙阻塞端口。

解决方法是使用iptables打开端口,如下所示:

$ sudo apt-get install iptables
$ sudo /sbin/iptables -I INPUT -p tcp --dport 19000 -j ACCEPT

此处有更多信息:https://github.com/dnschneid/crouton/wiki/Running-servers-in-crouton

我可以想象其他平台上也可能需要类似的解决方案。

答案 4 :(得分:1)

FWIW,对我来说,我已将nodejs设置为“仅允许通过专用网络进行连接”,但是Windows计算机上的wifi网络未设置为专用。我将其从公开更改为私有,重新启动了应用程序,然后运行良好。

答案 5 :(得分:0)

在OS X上,事实证明防火墙阻止了我的19000端口。前往

  

设置>安全和隐私

然后关闭防火墙即可解决。

答案 6 :(得分:0)

我有同样的问题。您应该关闭防火墙公用或进一步设置入站出站。希望对您有帮助!

答案 7 :(得分:0)

在Windows 10中,我遇到了同样的问题。我做了这些任务: 1-更改网络接口的优先级。

https://www.windowscentral.com/how-change-priority-order-network-adapters-windows-10

之前:Image1 之后:Image2

移动设备和计算机必须位于同一网络上(检查掩码)。 就我而言,Virtual Box更改了优先级。

2-首先,我关闭了防火墙,然后检查了应用程序是否正常运行,然后对防火墙进行了正确的调整。

希望对您有帮助!

答案 8 :(得分:0)

我以某种方式能够确定问题所在。您只需要执行ipconfig / all(Windows)或ifconfig(unix)并检查无线局域网适配器的WIFI IPV4地址,并用它替换exp URL中的主机即可。

exp://192.168.84.161:19000(在博览会开始时发布的此URL使用的是以太网IPV4地址而不是Wireless LanIPV4 192.168.0.10)

更改主机并直接在safari上点击它会打开一个Expo应用并成功加载react应用

希望这将帮助每个面临此问题的人。

答案 9 :(得分:0)

就我而言,我的PC中安装了Docker桌面客户端。我刚刚从我的电脑上卸载了Docker,它正在工作!也许有比卸载更好的方法,但是我不需要Docker,所以我将其卸载了。

答案 10 :(得分:0)

如果您是Windows用户,请确保已禁用防病毒防火墙,就是这样

答案 11 :(得分:0)

在Windows 10上:

  1. 您应点击连接属性

connection Properties

  1. 然后将网络配置文件中的网络连接从公共更改为私有

Networking Connection

答案 12 :(得分:0)

在我的 android 中它曾经可以工作,但有一天它在 android 重新启动后停止并开始工作。