Java 在Android中使用isReachable()时出错
我是android开发的新手。这是我的密码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
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);