本来想好好写一篇关于使用AsycnTask异步任务的学习总结的时候,本来大致都快写完了
但是最后面却出现了问题,ImageView控件无法获取解析获得的网络图片
一开始以为是URL的问题,但是经过测试在浏览器打的开,所以排除了这个问题
后来怀疑是否我没有在AndroidManifest.xml中加入访问网络的权限,经过再三确认,也不是权限的问题
<uses-permission android:name="android.permission.INTERNET" />
同时我发现logcat里面既没有报错误,也没有报异常,这就很尴尬了,当我以为学习AsycnTask异步任务正入高潮的时候竟然遇到了一个这样的问题
这也太打击我的信心了吧,然后我就开启了DegBug模式,发现
URL myurl = new URL(url);
connection=myurl.openConnection();
connection.connect();
is=connection.getInputStream();
第四句的时候会被我的Try catch捕获到IO异常,但是不知道为什么不报,所以我就在捕获异常把异常加入Log,看看究竟是怎么回事
catch (IOException e) {
Log.i("info", "IOException:"+e.toString());
e.printStackTrace();
}
终于,异常出来了。竟然是无法解析这个地址,这就郁闷啦,我明明就在浏览器测试过,也确定过没有权限问题
IOException:java.net.UnknownHostException: Unable to resolve host "image.sinajs.cn": No address associated with hostname
然后我就根据这个异常百度、谷歌
结果发现很多答案,什么DNS、权限各种等等
这只是其中之一
但是他们都没有解决我的问题,所以在我决定不理会了,趁着放假出去浪几天。
当然,在那个时候,我就想如果当我解决了这个问题的时候,我一定要写一篇博客,记录下来,所以你们就看到了这个博文啦
最后面,还是解决了这个问题,只是有一点点的小无语
问题竟然是我的genymotion安卓虚拟机无法上网
,我之前竟然没有测试过这个问题,真的,很尴尬。
现在我们就来解决,首先打开android虚拟机,打开设置,点击wlan,再点击wiredSSD,让它连接到网络
然后你再运行安卓工程。你就会发现
这个困扰了快一天的问题已经解决了
,网络图片完美显示~~