Android 按按钮使用dataoutputstream时崩溃

Android 按按钮使用dataoutputstream时崩溃,android,crash,dataoutputstream,Android,Crash,Dataoutputstream,在我的应用程序中,当我使用dataoutputstream而不使用按钮时,它会工作,但当我使用按钮时,它会崩溃 我需要清单中的权限。起初dataoutputstream工作,但当我使用按钮时,它崩溃了 private DataOutputStream outputStream; final Thread thread = new Thread(new Runnable() { @Override public void run() { try { socke

在我的应用程序中,当我使用
dataoutputstream
而不使用
按钮时,它会工作,但当我使用
按钮时,它会崩溃
我需要清单中的权限。起初
dataoutputstream
工作,但当我使用
按钮时,它崩溃了

private DataOutputStream outputStream;

final Thread thread = new Thread(new Runnable() {
  @Override
  public void run() {

    try {

        socket = new Socket(ip,9000);

      log("Connected!");


        outputStream = new DataOutputStream(socket.getOutputStream());

        outputStream.write("hi server\n".getBytes());


    }
    catch (IOException e) {
      log("Not Connected!");
    }
  }
});
btn_send.setOnClickListener(new View.OnClickListener() {

  @Override

  public void onClick(View v) {
    if (outputStream == null) {
      return;
    }
      String message = txt_user.getText().toString() + "\n";
    try {
      outputStream.write(message.getBytes());
    } catch (IOException e) {
      e.printStackTrace();
    }

  }
});


  thread.start();

}

请将stacktrace放在错误日志后,以便更好地进行分析。