出现Android.os.NetworkOnMainThreadException 错误

两种方法解决:

1、如果用的gradle打包,在build.gradle中修改配置

修改SDKVersion 为低版本(7),不能版本降低过多,否则会出现很多不适配。

2、将网络访问放在一个新的线程中,高版本上不允许网络访问阻塞主线程。

new Thread() {

  @override

  public void  run() {

  //网路访问线程

  }

      }.start();

时间: 2024-10-13 03:38:22

出现Android.os.NetworkOnMainThreadException 错误的相关文章

Caused by: android.os.NetworkOnMainThreadException错误解决办法

错误Caused by: android.os.NetworkOnMainThreadException :查了下原因上在4.0之后在主线程里面执行Http请求都会报这个错,大概是怕Http请求时间太长造成程序假死的情况吧. 解决办法有两个思路,分别是: 第一种方法:直接忽视,强制使用(强烈不推荐,但是修改简单)在MainActivity文件的setContentView(R.layout.activity_main)下面加上如下代码 if (android.os.Build.VERSION.S

调用webservice时,产生android.os.NetworkOnMainThreadException错误

android.os.NetworkOnMainThreadException 网上搜索后知道是因为版本问题,在4.0之后在主线程里面执行Http请求都会报这个错,也许是怕Http请求时间太长造成程序假死的情况吧.那么网上的朋友也给出了相应的解决方案,这叫上有政策下有对策: 一:在发起Http请求的Activity里面的onCreate函数里面添加如下代码: //详见StrictMode文档 StrictMode.setThreadPolicy(new StrictMode.ThreadPoli

报android.os.NetworkOnMainThreadException错误

问题描述: 1.当前的项目用的是4.3,经过断点调试,知道错误发生在 HttpURLConnection con = (HttpURLConnection)url.openConnection();//打开一个connection连接 con.setRequestMethod("GET"); con.setConnectTimeout(5000); //得到服务器返回来的流 InputStream is = con.getInputStream();//错误抛出的地方 并报出如下错误:

老出现这样问题现在做个记录:android.os.NetworkOnMainThreadException

1.一方面添加handler处理 2.方面添加下面的配置. 3.然后在主的activity中调用 //访问网络webservice兼容高版本 Utils.setSystemVersionMethod(context); 下面写在工具类中,然后在activity中调用 在调用qq快捷登录有时候会报这样的错误.原因在4.0以上不兼容webservice访问网络 //获得手机版本防止webservice访问网络在4.0以上出现问题 public static String GetSystemVersi

Android 异常 android.os.NetworkOnMainThreadException

最近在实现一个Android下的数据采集的SDK,收集用户使用数据使用HTTP发送到云平台,进行数据分析.但在发送数据时报如下错误: Caused by: android.os.NetworkOnMainThreadException 产生的原因,官方解释: Class Overview The exception that is thrown when an application attempts to perform a networking operation on its main t

安卓问题总结( android.os.NetworkOnMainThreadException异常)

问题描述: android.os.NetworkOnMainThreadException异常(不要在主线程访问网络资源) 问题分析: 造成这种异常的原因是安卓版本问题(仔细研究错误原因是代码不符合Android规范),网上搜索发现:android3.0版本开始(具体是不是从这个版本开始的,就不深究咯)就强制程序不能在主线程中访问网络,要把访问网络放在独立的线程中. 解决方式: 1.想要忽略这些强制策略问题的话,可以在onCreate()方法里面加上 StrictMode.setThreadPo

android.os.NetworkOnMainThreadException

android.os.NetworkOnMainThreadException 一.出现原因 我把网络读取数据的操作写进了主线程 看名字就应该知道,是网络请求在MainThread中产生的异常 二.产生原因 官网解释 Class Overview The exception that is thrown when an application attempts to perform a networking operation on its main thread. This is only t

android.os.NetworkOnMainThreadException 在4.0之后谷歌强制要求连接网络不能在主线程进行访问

谷歌在4.0系统以后就禁止在主线程中进行网络访问了,原因是: 主线程是负责UI的响应,如果在主线程进行网络访问,超过5秒的话就会引发强制关闭, 所以这种耗时的操作不能放在主线程里.放在子线程里,而子线程里是不能对主线程的UI进行改变的, 因此就引出了Handler,主线程里定义Handler,子线程里使用. 消息机制的写法 [1] anr Application not response 应用无响应 主线程(UI线程) [2] 如果在主线程中进行了耗时的操作 (比如连接网络 拷贝大的数据) Th

安卓开发解决android.os.NetworkOnMainThreadException异常方法(主线程不能直接调用webservice)

安卓开发解决android.os.NetworkOnMainThreadException异常方法 2013-01-07 14:01:04|  分类: 技术 |  标签:安卓  技术  java  |举报|字号 订阅 在android 2.3上访问网络的方法,在android 4.0上运行时报android.os.NetworkOnMainThreadException异常,主要问题在于4.0中访问网络不能在主线程中进行,有两个方法可以解决.第一种是在主线程中增加如下代码[不推荐]: // 详见