android开发分享错误StrictMode $ AndroidBlockGuardPolicy.onNetwork

我创build了android应用程序,并使用JSON从服务器获取数据,但我得到了下面的错误显示:

 android.os.NetworkOnMainThreadException at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117) 

我怎样才能解决这个问题
谢谢

    你必须在MainActivity类中插入2行“StrictMode”,例如下面的例子:

     public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); try { // JSON here } catch (JSONException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } setContentView(R.layout.activity_main); Intent intent=new Intent(this,HomeActivity.class); startActivity(intent); } } 

    Aey.Sakon

    如上所述,最好使用AsyncTask ,一种替代方法就是使用:

     if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } 

    或这个 :

     Thread thread = new Thread(new Runnable(){ @Override public void run() { try { //Your code goes here } catch (Exception e) { Log.e(TAG, e.getMessage()); } } }); thread.start(); 

    在您的活动发生Exception

    创build方法后只需添加两行

     StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); 

      以上就是android开发分享错误StrictMode $ AndroidBlockGuardPolicy.onNetwork相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/518649.html

      (0)
      上一篇 2020年12月6日
      下一篇 2020年12月6日

      精彩推荐