【问题标题】:AVD not able to connect to the internet?AVD 无法连接到互联网?
【发布时间】:2017-11-21 14:20:23
【问题描述】:

我尝试运行一个通过 HTTP 请求对象从互联网获取 JSON 数据的应用程序,结果显示

java.net.UnknownHostException: Unable to resolve host “api.github.com”: No address associated with hostname

作为每次试验的例外。后来我通过运行浏览器检查了 AVD 中的互联网连接。我无法访问任何网站。

我需要在 AVD 管理器 中更改任何设置,以便我可以通过虚拟设备访问 Internet。

帮帮我,在此先感谢。

【问题讨论】:

    标签: android android-studio networking


    【解决方案1】:

    在我的情况下,当模拟器无法连接到互联网时,我收到了这样的错误。

    (尝试使用模拟器浏览互联网以测试其互联网连接。建议在https://teamtreehouse.com/community/unknownhostexception-unable-to-resolve-host-apidarkskynet-no-address-associated-with-hostname

    【讨论】:

      【解决方案2】:

      如果那是您的确切错误,那么我就知道出了什么问题。

      与任何现代浏览器不同,Android API 需要明确声明 httphttps

      您必须确保 URL 包含这些协议中的任何一个,您可以通过手动将其添加到 URL 中来执行此操作,或者在创建 volley 请求之前添加此代码:

      if(!url.startsWith("http://") && !url.startsWith("https://")){
          url = "http://" + url;
      }
      

      您可以将其替换为 HTTPS,但并非所有站点都有 https,因此通常最好将其默认为 HTTP,以免从中出错。如果你提供 https 但没有 HTTPS 证书,网站很可能会拒绝连接。

      【讨论】: