Java NetworkOnMainThreadException-已尝试创建新线程和ASynchTask
我已经试着让它工作了一段时间了。我正试图从手机向笔记本电脑上的简单服务器发送信息。我一直收到NetworkOnMainThreadException,我尝试创建一个新线程(new Runnable()等)和一个ASynchTask,但仍然收到错误,应用程序正在强制关闭。我已经阅读了3或4个类似的问题,但没有一个对我有效。以下是我的代码:Java NetworkOnMainThreadException-已尝试创建新线程和ASynchTask,java,android,networking,Java,Android,Networking,我已经试着让它工作了一段时间了。我正试图从手机向笔记本电脑上的简单服务器发送信息。我一直收到NetworkOnMainThreadException,我尝试创建一个新线程(new Runnable()等)和一个ASynchTask,但仍然收到错误,应用程序正在强制关闭。我已经阅读了3或4个类似的问题,但没有一个对我有效。以下是我的代码: final Button post2 = (Button) findViewById(R.id.postbutton2); post2.setOnCl
final Button post2 = (Button) findViewById(R.id.postbutton2);
post2.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
new Thread(new Runnable() {
// TODO Auto-generated method stub
@Override
public void run() {
// TODO Auto-generated method stub
message = text.getText().toString(); //Message is a string, text is an EditText.
text.setText("");
try {
clientSocket = new Socket("10.0.0.2", 4445);
printWriter = new PrintWriter(clientSocket
.getOutputStream(), true);
printWriter.write(message);
printWriter.flush();
printWriter.close();
clientSocket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
Toast.makeText(context, e.toString(),
Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(context, e.toString(),
Toast.LENGTH_SHORT).show();
}
}
}).start();
}
});
您必须执行
YourActivity.this.runOnUiThread(new Runnable(){public void run(){/*show your toast here*/});
尝试从代码中删除以下部分
message = text.getText().toString(); //Message is a string, text is an EditText.
text.setText("");
在该线程中执行此操作似乎不正确。这次您遇到了什么异常?我仍然遇到NetworkOnMainThreadException。请发布您的整个堆栈跟踪。我刚刚在那里尝试过,结果是应用程序完全不可重复,强制关闭。这一次我遇到了NullPointerException。我是否o您的回答有问题??这解决了祝酒的问题!结合坡道建议,整个问题都解决了。谢谢