首先,确认你的android版本是4.0之后再用此方法解决,因为在4.0之后在主线程里面执行Http请求才会报这个错,也许是怕Http请求时间太长造成程序假死的情况吧。Android在4.0之前的版本支持在主线程中访问网络,但是在4.0以后对这部分程序进行了优化,也就是说访问网络的代码不能写在主线程中了。

        解决方法:

        1.在 onCreate() 添加一段代码:new Thread(runnable).start();//使用另外一个线程处理Http请求

        2.实现runnable接口,将socket的实例化放到这里进行(红字标注的部分)

Runnable runnable = new Runnable(){
     @Override
     public void run() {
     try {
       ip = ipEdit.getText().toString().trim();
       socket = new Socket(ip,PORT);
    } catch (UnknownHostException e) {    
       e.printStackTrace();
    } catch (IOException e) {    
       e.printStackTrace();
    }
     }
 };

注:新人贴求指教。

相关文章:

  • 2021-09-27
  • 2022-12-23
  • 2021-07-16
  • 2021-05-02
  • 2021-07-19
  • 2022-12-23
  • 2021-08-29
  • 2022-12-23
猜你喜欢
  • 2021-08-20
  • 2021-09-02
  • 2022-12-23
  • 2022-12-23
  • 2021-08-23
  • 2022-12-23
  • 2021-08-20
相关资源
相似解决方案