Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.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 android.os.NetworkOnMainThreadException问题_Java_Android_Sockets - Fatal编程技术网

Java android.os.NetworkOnMainThreadException问题

Java android.os.NetworkOnMainThreadException问题,java,android,sockets,Java,Android,Sockets,我想在我的Android应用程序中打开一个套接字,从服务器读取文件 我让服务器与模拟器在同一台计算机上运行,我在Android外部进行了测试,以确保连接时没有防火墙问题或其他问题 下面是我遇到问题的代码。它将打印IP地址,后跟streamm000。此时,它抛出一个android.os.NetworkOnMainThreadException 另外,另一个toast给我NULL 这是我的密码 toast("IP="+getIP()); try { toast("c

我想在我的Android应用程序中打开一个套接字,从服务器读取文件

我让服务器与模拟器在同一台计算机上运行,我在Android外部进行了测试,以确保连接时没有防火墙问题或其他问题

下面是我遇到问题的代码。它将打印IP地址,后跟streamm000。此时,它抛出一个
android.os.NetworkOnMainThreadException

另外,另一个
toast
给我
NULL

这是我的密码

    toast("IP="+getIP());

    try {
        toast("created stream00000");
        so=new Socket("10.50.1.25", 80);
        toast("created stream111111");
        oos=new ObjectOutputStream(so.getOutputStream());
        toast("created stream2222");
        dos=new DataOutputStream(so.getOutputStream());
        //oos.close();
        toast("created stream33333");
    }
    catch(Exception e){
        toast(e.getCause() +"problem with this bla bla is opensteam");
        toast(e.getMessage()+"problem with this bla bla is opensteam");
        Log.v(e+"problem ","with this bla bla is opensteam");
    }

抛出
networkMainThreadException
,因为在蜂巢和更高版本中,您必须在与主显示
Thread
分开的线程上执行网络操作

请参见此处的描述


因此,我的建议是将您的代码移动到一个新的
可运行类中,然后创建一个
线程来执行它。

您的代码无法回答您的问题。但看起来您正在主UI线程上执行网络操作。这在较新的API级别中是不允许的。当您尝试执行此操作时,它将抛出此异常


您需要生成一个不同的线程,并在那里执行网络操作。

我会尝试。非常感谢。我只是把它放在AsyncTask和doInBackground中,但结果仍然相同。我要试试这根线,就是这样!然后我不得不处理我的打印件。它不喜欢把它们放在一根线里。非常感谢。如果您的问题已得到回答,或者不再有效,请“勾选”以选择最合适的答案,以便所有人都知道问题已得到解决。谢谢