React native 网络响应超时错误(创建本地应用程序)(expo)

React native 网络响应超时错误(创建本地应用程序)(expo),react-native,react-native-android,expo,create-react-native-app,React Native,React Native Android,Expo,Create React Native App,我正在尝试在android的expo应用程序上运行CreateReact本机应用程序 首先,我通过编写命令创建了项目 sudo ufw allow 19001/tcp 创建本地应用程序测试 然后我执行了 npm启动 然后扫描来自expo应用程序的二维码 但扫描二维码后,我发现以下错误: Uncaught Error: Java.net,sockettimeoutException: failed to connect to after 10000ms Github问题: 这是由于您的计算机

我正在尝试在android的expo应用程序上运行CreateReact本机应用程序

首先,我通过编写命令创建了项目

sudo ufw allow 19001/tcp
创建本地应用程序测试

然后我执行了

npm启动

然后扫描来自expo应用程序的二维码

但扫描二维码后,我发现以下错误:

Uncaught Error: Java.net,sockettimeoutException: failed to connect to after 10000ms

Github问题:


这是由于您的计算机没有打开端口造成的

Linux(Ubuntu) 在Ubuntu运行终端中

sudo ufw状态详细
要查看打开的端口,如果找不到19000端口打开,则需要使用打开端口

sudo ufw allow 19000/tcp
然后再跑

sudo ufw允许19001/tcp

为了为react native提供http服务,我在ubuntu中使用这个方法解决了这个问题。我希望这对你有帮助

窗户 在Windows防火墙中打开TCP访问端口的步骤 在开始菜单上,单击运行,键入WF.msc,然后单击确定

在具有高级安全性的Windows防火墙中,在左窗格中,右键单击入站规则,然后在操作窗格中单击新规则

在“规则类型”对话框中,选择“端口”,然后单击“下一步”

在协议和端口对话框中,选择TCP。选择特定本地端口,然后键入React端口实例的端口号,例如默认实例的19000。单击下一步

在“操作”对话框中,选择“允许连接”,然后单击“下一步”

在“配置文件”对话框中,选择要连接到数据库引擎时描述计算机连接环境的任何配置文件,然后单击“下一步”

在“名称”对话框中,键入此规则的名称和说明,然后单击“完成”


同样,您也可以打开端口19001

您可以通过将笔记本电脑的ip地址固定为静态ip(比如192.168.1.69)来解决这个问题,然后您需要使用

set REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.69 (Windows)
REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.69 (Mac & Linux)

重新启动您的项目,您就可以开始了。

在我的情况下,仅防火墙设置并不能做到这一点。我的问题是VirtualBox网络设备占据了优先权,而世博会主办单位的网络启动错误

在windows上,您可以运行
ipconfig
并查看您拥有的网络适配器
npm
/
纱线开始
似乎接受该列表中最先出现的内容

我是在这里发现的:

如果不需要列表中的其他网络适配器,可以在“控制面板”的“网络连接”界面中禁用它们

如果您需要使用这些连接并进行世博会工作,那么要解决我所关注的问题:

  • 转到控制面板>网络和Internet>网络连接
  • 右键单击所需的连接(更高优先级的连接)
  • 单击属性>Internet协议版本4
  • 单击属性>高级
  • 取消选中“自动度量”
  • 在“接口度量”中输入10
  • 单击“确定”
  • 对低优先级连接重复此操作,但这次将20放入“接口度量”

    现在,您将使用更高优先级的连接作为默认连接

    首先,禁用未使用的网络连接。就我而言,这是VirtualBox。也许它使用的是同一个端口。我对此不确定。禁用未使用的连接后,重新启动打包机。如果使用npm,则键入

    npm start
    
    • 找到ipv4地址
    • 打开expo应用程序,然后从底部点击浏览按钮
    • 将exp://[IPV4Address]:19000写入搜索栏
    • 然后你的应用程序将打开

    我建议您为react native安装expo应用程序,链接到

    然后,您可以使用Genymotion软件模拟应用程序运行时的不同环境设置:

    exp start
    
    如果您在终端“npm start”中使用本机react,则以下内容适用于您。 我发现,如果我的应用程序成功运行,终端上显示的和Expo应用程序上显示的计算机IpV地址是相同的,例如:

    ipconfig -> IPv4 Address. . . . . . . . . . . : 10.0.0.124
    exp://10.0.0.124:19000
    
    基于这一观察,我通过以下方式解决了这个问题:

  • 关闭正在运行应用程序的npm提示脚本
  • 关闭世博会应用程序
  • 通过在终端中运行命令查找您的IP:

    ipconfig
    
  • 使用IP在NodeJS命令提示符下运行命令(例如10.0.0.124)

  • 启动Expo应用程序,扫描条形码

    npm start
    
    如果没有帮助,那么除了其他合理的努力之外,使用React开发者推荐的下一步步骤:

  • 使用VirtualBox安装GenyMoon
  • 在Genymotion网站注册
  • 运行Genymotion软件并运行!!!签名

  • 如果您正在使用GitBash进行开发,那么Icruz4提供的这个解决方案将有所帮助

    而不是

    set REACT\u NATIVE\u PACKAGER\u主机名

    使用:

    注:

    当你跑的时候

    npm启动

    Expo在输出中告诉您它使用的IP。如果该IP不是您想要的IP,则

    REACT\u NATIVE\u PACKAGER\u主机名


    环境变量设置不正确

    此问题可能通过以下方式解决:

    有其他指示

    有详细的说明或说明

    进行任何更改后,请在测试计算机是否正常工作之前重新启动计算机

    祝你好运

    在Windows中

    set REACT_NATIVE_PACKAGER_HOSTNAME=my-ip-address
    
    在我的git bash终端中工作,但不是cmd。在GitBash中,在运行NPMStart之后,我得到了一个防火墙
    export REACT_NATIVE_PACKAGER_HOSTNAME='192.168.1.123'
    
    set REACT_NATIVE_PACKAGER_HOSTNAME=my-ip-address
    
    set REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.69 (Windows)
    REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.69 (Mac & Linux)
    
    sudo ufw status verbose
    
     sudo ufw allow 19000/tcp
    
    sudo ufw allow 19001/tcp