真气人,以前写的代码,今天重新导入,出现一大堆问题,
开始是导进去报错,弄了半天是版本问题,然后百度解决了一下
http://blog.csdn.net/wang6279026/article/details/8564248
后来又说什么android.os.NetworkOnMainThreadException异常,我以为是我以前写的代码有问题呢,(话说我网络操作这一块不是很擅长)。所以就一直在查找代码的错误。结果实在是找不出来,然后百度一下,发现原来还是版本问题,整天升级,升的我都无语了。浪费了一大堆时间。
升级以后的版本不能在主线程中使用http请求,否则会报错。可能设计者已经发现主线程中阻塞可能引起较为严重的后果吧。解决办法有两个
一个就是众所周知的handler
一个就是在oncreate方法中,增加如下代码
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads().detectDiskWrites().detectNetwork() .penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects().detectLeakedSqlLiteObjects() .penaltyLog().penaltyDeath().build());然后就好了。对了,别忘了加网络权限。