Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NetworkOnMainThreadException-已尝试创建新线程和ASynchTask_Java_Android_Networking - Fatal编程技术网

Java NetworkOnMainThreadException-已尝试创建新线程和ASynchTask

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

我已经试着让它工作了一段时间了。我正试图从手机向笔记本电脑上的简单服务器发送信息。我一直收到NetworkOnMainThreadException,我尝试创建一个新线程(new Runnable()等)和一个ASynchTask,但仍然收到错误,应用程序正在强制关闭。我已经阅读了3或4个类似的问题,但没有一个对我有效。以下是我的代码:

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您的回答有问题??这解决了祝酒的问题!结合坡道建议,整个问题都解决了。谢谢