Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.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应用程序检查端口可用性_Java_Android_Network Programming_Inet - Fatal编程技术网

Java 正在尝试使用android应用程序检查端口可用性

Java 正在尝试使用android应用程序检查端口可用性,java,android,network-programming,inet,Java,Android,Network Programming,Inet,我试图检查是否可以通过android应用程序访问web服务 在我的按钮中,单击侦听器是: try { InetAddress address = InetAddress.getByName(result); // user input is 'result' (a URL) LINE 73 boolean b = address.isReachable(3000); String str = String.val

我试图检查是否可以通过android应用程序访问web服务

在我的按钮中,单击侦听器是:

    try {

            InetAddress address = InetAddress.getByName(result); // user input is 'result' (a URL) LINE 73
            boolean b = address.isReachable(3000); 
            String str = String.valueOf(b); // turning the value of the boolean into string
            pingResult.setText(str); // value displays as true or false

            }

    catch (UnknownHostException e) {} // will fill with helpful message later
    catch (IOException e) {}
Logcat正在显示:

05-10 15:21:21.390: E/AndroidRuntime(11653): FATAL EXCEPTION: main
05-10 15:21:21.390: E/AndroidRuntime(11653): Process: com.example.c3po, PID: 11653
05-10 15:21:21.390: E/AndroidRuntime(11653): android.os.NetworkOnMainThreadException
05-10 15:21:21.390: E/AndroidRuntime(11653):    at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145)
05-10 15:21:21.390: E/AndroidRuntime(11653):    at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
05-10 15:21:21.390: E/AndroidRuntime(11653):    at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
05-10 15:21:21.390: E/AndroidRuntime(11653):    at java.net.InetAddress.getByName(InetAddress.java:289)
05-10 15:21:21.390: E/AndroidRuntime(11653):    at com.example.c3po.MainActivity$2.onClick(MainActivity.java:73)
此外,第73行已被注释

你知道我哪里出错了吗


谢谢

您在主线程上遇到网络异常。在主线程(即您的UI线程)上使用任何类型的阻塞(或网络活动)都不是一个好的做法

可能的解决办法:

1.单击按钮“生成线程”,在该线程中执行您尝试执行的网络活动。() 2.这种解决方案是不可取的。但是,您仍然可以将清单设置为允许主线程上的网络活动,Google可以为您提供清单命令


您可以在NetworkOnMainThreadException上搜索以了解更多信息。

堆栈跟踪准确地告诉您做错了什么,您正在UI线程上运行网络操作。只需将其移动到线程或异步任务,它就会工作