36

我已经安装了虚拟盒子。而当我查看主机 > LAN > ip 地址是 exp://192.168.56.1:19000。

如何在不禁用网络的情况下更改它?因为这是我的virtualbox ip,我的设备无法连接到它。

谢谢

4

14 回答 14

45

您可以指定REACT_NATIVE_PACKAGER_HOSTNAME环境变量以使用正确的 IP 地址。

如果您使用的是 XDE,请确保xde .在安装命令行工具后从您的项目目录启动它。

于 2017-05-02T19:17:08.763 回答
14

在 Windows 中,您可以使用:

set REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.59

set仅用于一个会话。如果您总是想在重启后使用相同的 ip,您可以使用:

setx /M REACT_NATIVE_PACKAGER_HOSTNAME 192.168.1.59
于 2018-12-13T21:40:42.170 回答
6

即使您设置了自定义ip,您仍然无法连接虚拟盒子。

您需要在网络设置页面为虚拟机设置端口转发。

只需为应用程序 Expo 使用真正的主机机 ip。

REACT_NATIVE_PACKAGER_HOSTNAME='真实主机机器ip' npm start
于 2017-11-22T09:03:34.993 回答
3

检查你的电脑是否安装 virtualbox ,禁用 VirtualBox Host-Only Network

去win pc:控制面板\网络和Internet\网络连接

再次运行命令 expo start 就可以了

于 2018-11-02T15:37:50.520 回答
2

从您的项目目录中打开CMD并运行命令为set REACT_NATIVE_PACKAGER_HOSTNAME=192.168.0.12. 将 ip 替换为您自己的 LAN ip 地址。该命令set用于在本地设置环境变量,而不是将其定义到环境变量中。

于 2019-03-06T13:47:24.840 回答
1

我有类似的问题(可能略有不同),但该解决方案对我不起作用。最后,我尝试了 Expo CLI 工具,该工具对我来说非常有用,并且也得到了 Expo 团队的推荐。

我的详细问题(可能会帮助某人解决类似问题):

Expo LAN 配置不适用于新的 ReactNative 项目

于 2017-12-25T08:31:53.067 回答
0

对我来说,在 Windows 下工作完全不同。我的电脑有多个网络接口,LAN URL 指向与移动设备可以连接的不同的网络接口。

通过停用所有不必要的网络适配器,很快就解决了这个问题。

(设置 REACT_NATIVE_PACKAGER_HOSTNAME 环境变量对我不起作用。)当然,我在专用网络上并为它禁用了防火墙,直到我配置它。

或者,为避免不得不停用网络适配器,您还可以调整适配器的指标或优先级,如下所示:

  1. 转到控制面板 > 网络和 Internet > 网络连接
  2. 右键单击所需的连接(更高优先级的连接)
  3. 单击属性 > Internet 协议版本 4
  4. 单击属性 > 高级
  5. 取消选中“自动指标
  6. 在“接口度量”中输入 10
  7. 点击确定
于 2021-12-30T22:19:20.953 回答
0

REACT_NATIVE_PACKAGER_HOSTNAME 环境变量是 react DevTools 的。对于 EXPO,您必须设置 EXPO_DEVTOOLS_LISTEN_ADDRESS 环境变量。这是确定主机名的奇怪函数:

function devtoolsGraphQLHost() {
    if (process.env.EXPO_DEVTOOLS_LISTEN_ADDRESS && process.env.REACT_NATIVE_PACKAGER_HOSTNAME) {
        return process.env.REACT_NATIVE_PACKAGER_HOSTNAME.trim();
    }
    else if (process.env.EXPO_DEVTOOLS_LISTEN_ADDRESS) {
        return process.env.EXPO_DEVTOOLS_LISTEN_ADDRESS;
    }
    return 'localhost';
}
于 2021-08-28T22:46:48.877 回答
0

在 Linux 的 Windows 子系统(Ubuntu 18.04.1 LTS “Bionic”)上,我必须使用以下export命令:

export REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.76.

于 2019-07-30T00:59:28.820 回答
0

如果您仍然遇到此问题,请尝试切换到隧道连接。它将安装@expo/ngrok@,然后您可以扫描二维码。它是我所做的,并且连接工作而无需更改 IP 地址

于 2021-09-27T07:39:34.967 回答
0

点击'npm start',打开你的应用程序所在的浏览器,在左下角,你会找到二维码。

二维码上方显示三个选项'Connection: Tunnel | LAN | Local',默认为'LAN'。只需将其更改为'Local'.

您的应用程序将启动并运行。

于 2021-10-02T14:31:50.190 回答
0

通过在 ios 模拟器上重新安装 expo 客户端解决了我的问题。
我之前使用过 expo v37,但在 v38 上遇到了这个问题,问题是 expo 客户端没有 expo sdk 38。

于 2020-07-02T03:38:18.197 回答
0

分享我将 EXPO 与 Cloud 9 和 AWS Amplify 一起使用的经验。和你一样,二维码给出 exp://localhost:19000

由于安全组已配置为提供公共访问,我重新生成 QR 码以使其可从公共 IP 地址 exp://XXXX:19000 访问,这可以从 IOS 设备扫描到 EXPO。

于 2020-11-22T03:58:11.927 回答
0

如果您配置了“Windows 中的 ubuntu”,您可以自动执行该过程并运行:

for /F "usebackq delims=" %A in (`ipconfig  ^| grep -A4 'Wireless LAN adapter WiFi' ^| tail -1 ^| awk '{print $NF}'`) do set REACT_NATIVE_PACKAGER_HOSTNAME=%A
于 2018-10-28T08:03:17.587 回答