此代码不起作用:
URL url = new URL( xmlPath );
InputSource input = new InputSource( url.openStream() );
Run Code Online (Sandbox Code Playgroud)
始终导致UnknownHostException,即使主机存在,也使用相同的代码成功命中,如果来自不同的开发主机(机器),也来自浏览器.
我可能会再次问这个问题,重复Android java.net.UnknownHostException:主机未解决(策略问题).论坛软件不允许我对该问题的不满意答案发表评论(为了更多地关注我最终找到的解决方案).也许我还不够受欢迎而没有得到这种特权.与此同时,我基本上重新发布了问题和不同的答案.
基本上,我接受在某些情况下Android设备可能很难使用DNS,但我已经尝试过,例如anddev.org如何使用SAX解析器的例子,它在我拥有的一台机器上工作而不是另外一个.
编辑:如上所述,我知道一个有效的答案,并将发布.
我是a)提出一个问题(已经被问到并且没有成功回答)和b)为了那些对我有帮助的人的利益而回答它.
Rus*_*man 69
答案非常简单:删除,然后在Eclipse中重新创建AVD(虚拟设备/模拟器).它对我有用 - 第一次.
yan*_*cyn 54
我一直按照上面的步骤,但仍然没有运气,最后我只是意识到我的应用程序不允许在模拟器中外出互联网.因此,只需在清单文件中添加用户权限即可.完成!感谢jozsi,请访问http://www.helloandroid.com/tutorials/how-download-fileimage-url-your-device
小智 14
在我的情况下,我从手机上的URL下载了一个XML文件,但是在这个帖子中描述了这个问题.
为了修复它,我不仅需要获得常规的互联网许可
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
但我也需要
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)
建议您查看您的设备是否需要相同的内容,尝试导航到手机浏览器中的URL,看看是否有关于需要SD卡的提示.
希望能帮助别人.
它通过在AndroidMenifest.xml文件中添加用户对Internet的权限来为我工作
<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)
就我而言,问题出在其他地方.我不得不:
加 <uses-permission android:name="android.permission.INTERNET" />
在我的模拟器上设置代理服务器:Emulator > settings > wireless and network > Mobile Networks > Access Point Name > "the access point you have ;)".在这里,您可以设置所需的所有代理端口URL和登录/传递.
和
我在这里找到了解决方案:
"这个例外是有原因的.网络活动可能需要时间,在主线程上执行网络,这是负责更新UI的相同线程,会冻结线程,直到网络完成(这是每个都发生的事情)线程,但是当它在专用线程上执行时,没关系.)在Android中,如果UI线程未激活5秒,它将显示应用程序没有响应,是否要关闭它?对话框."
我无法摆脱模拟器"UnknownHostExceptions" - 模拟器的浏览器也无法获得连接.尝试了我可以在堆栈溢出和其他任何地方找到的所有建议.
最后我删除了我的AVD,关闭了Eclipse,然后通过命令行创建了AVD.然后通过命令行使用-dns-server 8.8.8.8启动它.(在我的Mac上:./ emulator -avd Google-8 -dns-server 8.8.8.8)它终于奏效了!
希望这有助于其他人.
| 归档时间: |
|
| 查看次数: |
72606 次 |
| 最近记录: |