报android.os.NetworkOnMainThreadException错误
2015-03-14 14:42
411 查看
问题描述:
1、当前的项目用的是4.3,经过断点调试,知道错误发生在
并报出如下错误:
03-14 14:27:38.428: W/System.err(30191): android.os.NetworkOnMainThreadException
03-14 14:27:38.429: W/System.err(30191): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1134)
解决:
经过网上查找相关资料得知,Android 2.3及以上版本开始提供了一个新的类 StrictMode,该类可以用于捕捉发生在应用程序主线程中耗时的磁盘、网络访问或函数调用,可以帮助开发者改进程序,使主线程处理 UI 和动画在磁盘读写和网络操作时变得更平滑,避免主线程被阻塞。
此处是主线程访问网络时出的异常。 Android在4.0之前的版本支持在主线程中访问网络,但是在4.0以后对这部分程序进行了优化,也就是说访问网络的代码不能写在主
线程中了。
网上相关资料得知,在主线程中添加如下代码即可解决:
1、当前的项目用的是4.3,经过断点调试,知道错误发生在
HttpURLConnection con = (HttpURLConnection)url.openConnection();//打开一个connection连接 con.setRequestMethod("GET"); con.setConnectTimeout(5000); //得到服务器返回来的流 InputStream is = con.getInputStream();//错误抛出的地方
并报出如下错误:
03-14 14:27:38.428: W/System.err(30191): android.os.NetworkOnMainThreadException
03-14 14:27:38.429: W/System.err(30191): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1134)
解决:
经过网上查找相关资料得知,Android 2.3及以上版本开始提供了一个新的类 StrictMode,该类可以用于捕捉发生在应用程序主线程中耗时的磁盘、网络访问或函数调用,可以帮助开发者改进程序,使主线程处理 UI 和动画在磁盘读写和网络操作时变得更平滑,避免主线程被阻塞。
此处是主线程访问网络时出的异常。 Android在4.0之前的版本支持在主线程中访问网络,但是在4.0以后对这部分程序进行了优化,也就是说访问网络的代码不能写在主
线程中了。
网上相关资料得知,在主线程中添加如下代码即可解决:
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads() .detectDiskWrites() .detectNetwork() // 这里可以替换为detectAll() 就包括了磁盘读写和网络I/O .penaltyLog() //打印logcat,当然也可以定位到dropbox,通过文件保存相应的log .build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects() //探测SQLite数据库操作 .penaltyLog() //打印logcat .penaltyDeath() .build());
相关文章推荐
- android错误之android.os.NetworkOnMainThreadException
- Caused by: android.os.NetworkOnMainThreadException错误解决办法
- android.os.NetworkOnMainThreadException错误解决办法
- Caused by: android.os.NetworkOnMainThreadException错误解决办法(强制主线程做网络请求)
- Caused by: android.os.NetworkOnMainThreadException错误解决办法
- 错误网络异常:android.os.NetworkOnMainThreadException
- android.os.NetworkOnMainThreadException错误的原因
- android.os.NetworkOnMainThreadException错误解决办法
- 【转】Caused by: android.os.NetworkOnMainThreadException错误解决办法
- android.os.NetworkOnMainThreadException错误笔记
- Android 3.0 访问donet webService 出现 android.os.NetworkOnMainThreadException错误!
- Caused by: android.os.NetworkOnMainThreadException错误解决办法
- android.os.NetworkOnMainThreadException错误
- 【Android 错误记录】android.os.NetworkOnMainThreadException 异常问题
- Caused by: android.os.NetworkOnMainThreadException错误解决办法
- 出现Android.os.NetworkOnMainThreadException 错误
- android.os.NetworkOnMainThreadException异常
- android.os.NetworkOnMainThreadException问题
- Android.os.NetworkOnMainThreadException异常
- 解决android.os.NetworkOnMainThreadException