Java 在Android中使用isReachable()时出错

Java 在Android中使用isReachable()时出错,java,android,inetaddress,Java,Android,Inetaddress,我是android开发的新手。这是我的密码 boolean isReachable = false; try{ isReachable = InetAddress.getByName(MyIPAddress).isReachable(reachableTimeout); } catch (Exception e){ Log.e("InetAddress", e.getMessage()); }finally { if (!onlyReachables || isReach

我是android开发的新手。这是我的密码

boolean isReachable = false;
try{
    isReachable = InetAddress.getByName(MyIPAddress).isReachable(reachableTimeout);
} catch (Exception e){
    Log.e("InetAddress", e.getMessage());
}finally {
    if (!onlyReachables || isReachable) {
        // Do something
    }
}
当我的
AndroidManifest.xml
没有这些行时,它可以正常工作

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="16" />
更新: 根据这一点,从Android 3.0(蜂巢)开始,StrictMode被配置为在用户界面线程中访问网络时崩溃,出现NetworkOnMainThreadException异常。因此,我需要添加这些代码,使应用程序的工作

StrictMode.ThreadPolicy策略=新StrictMode。 ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(策略)


感谢您的支持。

这可能与您的问题无关,但是如果您有IP地址,您应该使用
getByAddress
而不是
getByName

isReachable = InetAddress.getByAddress(MyIPAddress).isReachable(reachableTimeout);
这是我的建议

编辑:

您有一个没有任何消息的异常。 首先,删除
e.getMessage()

然后,如果您需要解决问题,请显示更多代码。

请从发布异常堆栈跟踪logcat@Simon以下是我的日志:
E/AndroidRuntime(9310):由以下原因引起:java.lang.NullPointerException:println需要一条消息E/AndroidRuntime(9310):在android.util.Log.println_native(native Method)E/AndroidRuntime(9310):在android.util.Log.e(Log.java:297)e/AndroidRuntime(9310):在com.design.wifihotspot.MainActivity.setClientsList(MainActivity.java:226)
第226行是什么?
\u ClientsList=(ListView)findViewById(R.id.lvClients);尝试{ArrayList}U ClientResult=_WifiApManager.getClientList(false);_ClientsList.setAdapter(新AdapterForvClient(_ClientResult,this))}捕获(异常e){Log.e(this.getClass().toString(),e.getMessage());}它只是Log.e(this.getClass().toString(),e.getMessage())@Simon getClientList(布尔)方法包括上述代码
isReachable = InetAddress.getByAddress(MyIPAddress).isReachable(reachableTimeout);