【问题标题】:java.lang.RuntimeException: java.net.UnknownHostException: Host is unresolved:java.lang.RuntimeException:java.net.UnknownHostException:主机未解析:
【发布时间】:2011-09-29 22:40:53
【问题描述】:

我在解析 XML 文件时遇到问题,我使用 newsRSS 解析器作为参考。但我在真实设备中遇到此错误。如何向用户显示错误消息,如警告并让他留在应用程序上没有崩溃?

这是执行连接和解析的代码的和平:

protected Config_Parser(String feedUrlString,Context context){
  this.context = context;
  try {
    this.feedUrl = new URL(feedUrlString);
  } catch (MalformedURLException e) {
    throw new RuntimeException(e);
  }
}
protected InputStream getInputStream() {
  try {
    return feedUrl.openConnection().getInputStream();
  } catch (IOException e) {
    Log.e("Error", "error happned");
    return null;
    //throw new RuntimeException(e);
  }
}

如何在不崩溃或退出应用程序的情况下向用户发送警报来处理此错误?

感谢您的帮助:)

【问题讨论】:

  • 您的日志消息不是很有帮助。它没有给出任何实际错误的指示。

标签: java android


【解决方案1】:

如果这在 emulator 而不是在您的 device 上有效,则很可能是因为您的 device 上没有 InternetConnection 或者您尝试访问的 Feed URL 无法从Network 你的device 也已连接。

【讨论】:

    【解决方案2】:

    我已经有这个问题了,host is unresolved 表示该 url 无法访问,或者您的连接太慢。尝试使用另一个具有良好带宽的 Internet Connexion 测试您的程序:

    另外,请检查您的模拟器是否显示 3G 图标。

    【讨论】:

    • 是的,您是对的,有时主机无法访问。但我的观点是:我如何检测我的请求是否完成?并提醒该应用的用户?
    • 您已经捕获了您的代码可能抛出的异常,因此您可以通过显示 Toast 或 alertDialog 来提醒用户在 Bloc Catch() 上,当您的代码请求完成时也是如此,显示 Toast:)
    猜你喜欢
    • 2012-01-02
    • 1970-01-01
    • 2013-11-29
    • 2021-05-18
    • 2018-07-14
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    相关资源
    最近更新 更多