问题

我应该采取哪些步骤来解决错误:

java.net.UnknownHostException: Invalid hostname for server: local

我在Android模拟器中添加了新的虚拟主机名,但结果返回到

java.net.UnknownHostException virtualhostname at 
  java.net.InetAddress.lookUpHostByName(InetAddress.java:506)

当我在我的PC上键入我的虚拟主机URL时,它可以显示。然后,当我在Emulator上运行并检查Logcat时,如果200,202或错误代码编号,我无法读取或检查HTTP状态。它只是返回到UnknownHostException


#1 热门回答(56 赞)

我在我的Mac上遇到了同样的问题。当我从终端ping了my$HOSTNAME时,我发现了问题,它返回了53428408。

解决:

  • 在终端上回显$ HOSTNAME。
  • 无论它显示什么主机名(让我们说myHostName),尝试ping它:ping myHostName。如果它返回ping:无法解析myHostName:未知主机然后在/ etc / hosts文件中添加一个条目。
  • 对于该编辑/ etc / hosts文件并添加以下内容:127.0.0.1 myHostName

希望能帮助到你。


#2 热门回答(55 赞)

真正的例外是,没有名为"local"的已知服务器。我的猜测是你正在尝试连接到本地计算机。尝试使用hostname"localhost",或者也许是127.0.0.1::1(最后一个是IPv6)。

javadocs

抛出表示无法确定主机的IP地址。

127.0.0.1::1"localhost"应始终是loopback接口,所以如果这不起作用我真的会感到惊讶。

如果网络上确实存在名为"本地"的服务器 - 请检查DNS设置或将其添加到主机文件中。


#3 热门回答(17 赞)

java.net.UnknownHostException:主机未解析:

抛出表示无法确定主机的IP地址。

当你连接到有效的wifi但路由器未接收互联网时,也会引发此异常。很容易重现这个:

  • 连接到有效的无线网络
  • 现在在插入路由器时从路由器上拔下电缆

你会发现这个错误!!

你无法解决这个问题,你只能优雅地通知用户。 (类似于 - "无法建立连接")


原文链接