首页 文章

网络响应超时错误(create-react-native-app)(expo)

提问于
浏览
24

我想在android上的expo app上运行create-react-native-app .

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

create-react-native-app test

然后我执行了

npm开始

然后从expo app扫描qr代码 .

但扫描QR码后,我收到以下错误:

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

enter image description here

Github问题:

https://github.com/react-community/create-react-native-app/issues/144#issuecomment-296631692

15 回答

  • 3
    • 找到了ipv4地址

    • 打开世博会应用,然后点击从底部探索按钮

    • 写exp:// [ipv4adress]:19000到搜索栏

    • 然后你的应用程序将打开

  • 3

    在Windows中

    • 在命令提示符下运行 ipconfig

    • 获取ip4地址并复制它 .

    比去

    • 此PC>属性>高级系统设置>环境变量

    • 添加以下系统变量: REACT_NATIVE_PACKAGER_HOSTNAME

    • 作为变量的值我必须粘贴ip4 .

    然后运行 npm start 这对我有用

  • 1

    enter image description here

    首先,禁用未使用的网络连接 . 就我而言,它是VirtualBox . 也许它正在使用相同的端口 . 我不确定 . 禁用未使用的连接后,重新启动打包器 . 如果您使用npm然后键入

    npm start
    
  • 30

    我尝试了很多解决方案,只有这样才能帮助我解决这个问题:

    在Windows中:

    • 转到窗口控制面板中的"Network and Connections"(网络和共享中心>更改适配器设置)

    • 禁用您在此处可以看到的所有虚拟框

    • 重启npm或纱线或世博会......

  • 35

    如果你使用git bash进行开发,那么Icruz4的这个解决方案将有所帮助

    代替

    set REACT_NATIVE_PACKAGER_HOSTNAME

    使用:

    export REACT_NATIVE_PACKAGER_HOSTNAME='192.168.1.123'
    

    注意:

    当你跑步

    npm start

    Expo在输出中告诉您它正在使用的IP . 如果那个IP不是你想要的IP那么

    REACT_NATIVE_PACKAGER_HOSTNAME

    环境变量设置不正确

  • 0

    在Windows中

    set REACT_NATIVE_PACKAGER_HOSTNAME=my-ip-address
    

    在我的git bash终端内工作,但不是cmd . 在git bash中,在我运行npm start之后,我得到了一个防火墙弹出窗口,我点击它允许它工作!

  • 0

    就我而言,防火墙设置本身并没有这样做 . 我的问题是VirtualBox网络设备优先考虑,而世博主机是在错误的网络上启动的 .

    在Windows上,您可以运行 ipconfig 并查看您拥有的网络适配器 . npm / yarn start 似乎在该列表中首先显示任何内容 .

    我从这里发现了这个:https://github.com/react-community/create-react-native-app/issues/60

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

    如果您需要使用这些连接并进行世博会工作,那么我将遵循this process

    转到控制面板>网络和Internet>网络连接右键单击所需的连接(更高优先级连接)单击属性> Internet协议版本4单击属性>高级取消选中'自动度量'在“接口度量”中输入10单击“确定”重复下一步优先级连接,但这次将20放入'接口度量标准'现在您将使用更高优先级的连接作为默认值 .

  • 0

    您只需要在Window Firewall中打开端口,一切都应该有效 .

    1.在“开始”菜单上,单击“运行”,键入WF.msc,然后单击“确定” .

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

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

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

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

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

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

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

  • 0

    这个问题可以通过以下方式解决:

    Setting your environment variable与替代说明here

    要么

    Assigning interface matrix priority for your network adapters,详细说明herehere .

    要么

    An Ubuntu machine is unable to open a port

    进行任何更改后,请在测试之前重新启动计算机是否有效 .

    祝好运!

  • 17

    我有同样的问题 . 问题是命令yarn start或npm start找到它找到的第一个启用的网络适配器,恰好是我(以及许多其他机器)上VirtualBox的适配器 . 解决方案是:

    手动设置REACT_NATIVE_PACKAGER_HOSTNAME环境变量,或在Windows的网络连接中禁用未使用的网络适配器(见图)问题是Expo找到第一个网络适配器,而不是提供Internet连接的活动网络适配器 .

    enter image description here

  • 2

    我完成了上下文中提到的所有事情 . 刚刚将我连接的WiFi网络从公共更改为私有 . 这对我有用

  • 0

    你可以解决这个问题笔记本电脑的IP地址为静态IP,让我们说192.168.1.69,然后你需要将本机打包器的IP地址改为你的笔记本电脑的同一个,

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

    再次启动你的项目,你很高兴 .

  • 0

    我建议您安装expo应用程序以反应原生,链接到official guide here

    npm install -g exp
    

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

    exp start
    

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

    ipconfig -> IPv4 Address. . . . . . . . . . . : 10.0.0.124
    exp://10.0.0.124:19000
    

    根据这一观察,我通过以下方式解决了这个问题:

    • 关闭正在运行app的npm提示脚本

    • 关闭世博会应用

    • 通过在终端中运行命令找到您的IP:

    ipconfig
    
    • 使用您的IP在NodeJS命令提示符中运行命令(例如10.0.0.124)
    set REACT_NATIVE_PACKAGER_HOSTNAME=10.0.0.124
    
    • 启动Expo应用程序,扫描条形码
    npm start
    

    如果它没有帮助,那么除了其他合理的努力之外,还要使用React开发人员推荐的后续步骤:

    • 使用VirtualBox安装Genymotion
      _999_在Genymotion网站注册

    • 运行Genymotion软件和!!!登录

  • 2
    • 在您的设备中:登录您的展示应用,如果您没有,请创建帐户 .

    • 在您的系统中:打开终端通过cd命令转到您的项目目录然后键入 sudo exp start 它会在您完成此操作后询问您的世博帐户登录详细信息 .

    • 它将为您提供扫描的qr代码 .

  • 1

    这是因为您的机器没有打开端口 .

    在Ubuntu Run In终端中

    sudo ufw status verbose 要查看打开端口,如果找不到19000端口,则需要打开端口

    sudo ufw allow 19000/tcp
    

    然后再次运行

    sudo ufw allow 19001/tcp

    为本机提供http服务我使用此方法在我的ubuntu中解决了这个问题 . 我希望这能帮到您 .

    在Windows防火墙中打开TCP访问端口在 Start 菜单上,单击 Run ,键入 WF.msc ,然后单击 OK .

    Windows Firewall with Advanced Security 中,在 left pane 中,右键单击 Inbound Rules ,然后在操作窗格中单击 New Rule .

    Rule Type 对话框中,选择 Port ,然后单击 Next .

    Protocol and Ports 对话框中,选择 TCP . 选择 Specific local ports ,然后键入React端口实例的端口号,例如 19000 作为默认实例 . 单击 Next .

    Action 对话框中,选择 Allow the connection ,然后单击 Next .

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

    Name 对话框中,键入此规则的名称和说明,然后键入 click Finish .

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

相关问题