问题
我应该采取哪些步骤来解决错误:
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但路由器未接收互联网时,也会引发此异常。很容易重现这个:
- 连接到有效的无线网络
- 现在在插入路由器时从路由器上拔下电缆
你会发现这个错误!!
你无法解决这个问题,你只能优雅地通知用户。 (类似于 - "无法建立连接")