返回

解决 Expo AVM 中的 java.net.UnknownHostException 错误:详尽指南

Android

在 Android 虚拟机中启动 Expo 项目时如何解决 java.net.UnknownHostException 错误

引言

在使用 Expo CLI 启动 Expo 项目时,Android 虚拟机 (AVM) 可能无法启动,并显示 java.net.UnknownHostException 错误。这表示 AVM 无法解析主机名,阻碍了启动过程。

问题原因

  • 主机无法连接到互联网
  • 主机防火墙阻止 Expo 和 AVM 通信
  • 过时的 AVM 映像
  • 过时的 Expo CLI

解决方案

1. 检查互联网连接

确保你的主机已连接到网络,并尝试 ping 一个网站或 IP 地址。

2. 检查防火墙设置

在 Windows 中,转到控制面板 > 系统和安全 > Windows 防火墙,并禁用它。在 Mac 中,转到系统偏好设置 > 安全与隐私 > 防火墙,并禁用它。

3. 更新 AVM 映像

  • 在 Android Studio 中打开 AVD Manager > 虚拟设备
  • 选择虚拟设备并单击编辑
  • 在硬件选项卡中,单击更新

4. 重新安装 Expo CLI

在终端或命令提示符中运行以下命令:

npm uninstall -g expo-cli
npm install -g expo-cli

5. 使用 VPN(可选)

如果上述步骤无效,请尝试使用 VPN 来绕过防火墙或其他网络限制。

其他提示

  • 使用最新版本的 Expo CLI
  • 检查 AVM 设置(如内存分配)
  • 尝试不同的 AVM 映像
  • 重新启动主机和 AVM

常见问题解答

1. 为什么会出现 java.net.UnknownHostException 错误?

当 AVM 无法解析主机名时,就会出现此错误。

2. 如何知道我的主机是否已连接到互联网?

尝试 ping 一个网站或 IP 地址。如果成功,则已连接。

3. 如何检查防火墙设置?

在 Windows 中,转到控制面板 > 系统和安全 > Windows 防火墙。在 Mac 中,转到系统偏好设置 > 安全与隐私 > 防火墙。

4. 如何更新 AVM 映像?

在 Android Studio 中,转到 AVD Manager > 虚拟设备。选择虚拟设备并单击编辑。在硬件选项卡中,单击更新。

5. 如何重新安装 Expo CLI?

在终端或命令提示符中运行以下命令:

npm uninstall -g expo-cli
npm install -g expo-cli

结论

通过遵循这些步骤,你应该能够解决 java.net.UnknownHostException 错误,并顺利在 AVM 中启动 Expo 项目。记住要仔细检查互联网连接、防火墙设置、AVM 映像和 Expo CLI 版本。