React Native应用程序无法在Expo应用程序中启动

时间:2018-01-18 11:48:54

标签: react-native expo

我安装了带有Expo的HTC M8s,我想测试用React Native编写的应用程序。我在控制台中运行我的应用程序,扫描QR码并尝试从我的智能手机连接到我的应用程序 - 不幸的是,我看到一个错误,说它无法加载exp:// myaddress:port。

我正在使用Windows 10,我的电脑和智能手机都连接到同一个WiFi网络。

这是ipconfig命令的结果:

Ethernet adapter Ethernet:
   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : myhostname.net

Wireless LAN adapter Wi-Fi:
   Connection-specific DNS Suffix  . : myhostname.guest
   Link-local IPv6 Address . . . . . : fe80::8136:d112:d190:5fd8%17
   IPv4 Address. . . . . . . . . . . : 10.168.4.171
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 10.168.4.1

Ethernet adapter Ethernet 6:
   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Wireless LAN adapter Local Area Connection* 1:
   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Ethernet adapter Ethernet 3:
   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Ethernet adapter Bluetooth Network Connection:
   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Tunnel adapter Local Area Connection* 11:
   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::1c40:2198:f557:fb54%11
   Default Gateway . . . . . . . . . :

这是运行npm start

的结果
(...) Or enter this address in the Expo app's search bar:

  exp://10.168.4.171:19000

很遗憾,我无法从智能手机中安装的Expo应用访问我的应用。

我已经尝试过:

  • 在我的电脑上卸载VirtualBox
  • 更改了网络适配器的优先级,以便WiFi具有最高优先级

我仍然无法通过Expo应用程序运行我的应用程序。然而,在我的电脑上安装Expo应用程序解决了这个问题 - 它显示了与控制台上的QR码不同的QR码,我可以运行我的本机应用程序,但我想从智能手机的Expo应用程序运行我的应用程序。

编辑: 我尝试使用Win10的另一台PC。安装了create-react-native-app,运行它,并通过WiFi完美地工作。

2 个答案:

答案 0 :(得分:0)

我不确定你是否已经找到答案,但我希望这可以帮助那些面临同样情况的人。罪魁祸首是网络适配器。有一种称为网络适配器的接口度量,接口度量越低,适配器的优先级越高。 我是从windows透视来写这个答案的。正如您所提到的,您的电脑和手机连接到同一个Wi-Fi网络,您无法访问移动设备上的应用程序的原因是因为您启动服务器时获得的本地IP未分配给你想要的适配器。

  • 以下解决方案对我有用:
    1. 以管理员身份启动命令提示符,键入powershell。
    2. 输入Get-NetIPInterface:这将为您提供网络适配器列表,索引号及其接口指标
    3. 通过以下命令将wirelss适配器的接口度量标准更改为最小值:Set-NetIPInterface -InterfaceIndex “your_wifi_adapter_interface_index”--InterfaceMetric“MinimumValue”
    4. 在控制台选项卡中键入“r”,其中打开npm,以便重新启动打包程序。
    5. 瞧!它有效。

答案 1 :(得分:0)

来源:https://github.com/react-community/create-react-native-app/issues/60#issuecomment-317104728 我阅读了Himujjal's解决方案,该解决方案适用于我: 以下步骤肯定会有所帮助。我遇到了同样的问题,并且能够在Windows 10 OS中解决它。我在计算机上安装了Virtual Box,但无法在android expo客户端中运行CRNA。所以,

  1. 首先,我通过移动热点连接了笔记本电脑。
  2. 然后,控制面板>(搜索“网络连接”)>网络连接
  3. 右键单击“ Wifi”>选择“属性”>“ Internet协议版本4(TCP / IPv4)” [不要取消选中标记]
  4. 转到“属性”>“高级...”>(取消选中“自动度量”)>在(接口度量)下面的文本框中输入:10。
  5. 单击“确定”,然后单击“确定”和“确定”:)
  6. 然后对其他“ Virtual Box-xxxxx”网络执行相同的操作。而是在Interface Metric文本框中输入20。
  7. 单击“确定”,“确定”和“确定”。

尝试在Expo上重新启动您的应用。它必须现在可以工作!