【发布时间】:2016-02-23 07:27:22
【问题描述】:
我正在尝试在android中获取主机名为nirranjan-pc的机器的IP地址,并尝试按照this问题的答案使用下面的代码
Log.e(tag, "In background method :: ");
try {
String ip = InetAddress.getByName("nirranjan-pc").getHostAddress();
Log.e(tag, "++++++++++++ IP FOUND :: " + ip);
} catch (Exception ex) {
Log.e(tag, "Exception:: " + ex);
Log.e(tag, Log.getStackTraceString(ex));
Log.e(tag, "Exception Host ", ex);
} finally {
Log.e(tag, "Finally::");
}
但我没有获得 IP 地址,并且无法使用 Log.e(tag, Log.getStackTraceString(ex)); 和 Log.e(tag, "Exception Host ", ex); 方法获得 UnknownHostException 的完整堆栈跟踪。
只有Log.e(tag, "Exception:: " + ex); 方法可以正常工作。
我的 logcat 在下面。
02-23 12:23:24.308 16507-16618/in.gauriinfotech.sevadeal E/Favour: In background method ::
02-23 12:23:24.350 16507-16513/in.gauriinfotech.sevadeal W/art: Suspending all threads took: 14.457ms
02-23 12:23:24.377 16507-16618/in.gauriinfotech.sevadeal E/Favour: Exception:: java.net.UnknownHostException: Unable to resolve host "nirranjan-pc": No address associated with hostname
02-23 12:23:24.380 16507-16618/in.gauriinfotech.sevadeal E/Favour: Exception Host
02-23 12:23:24.380 16507-16618/in.gauriinfotech.sevadeal E/Favour: Finally::
我的问题
1) 为什么Log.e(tag, Log.getStackTraceString(ex)); 和Log.e(tag, "Exception Host ", ex); 方法不能正常运行并且没有给出堆栈跟踪。
2) 我在 java 桌面应用程序中获得了正确的 IP 地址,没有任何错误。为什么它在android中不起作用?
-- 我也尝试在 android 中使用 Google Chrome 浏览器访问相同
使用 IP 地址可以正常工作
但不能使用机器名称
奇怪的是,当我尝试从 Windows Phone 的浏览器打开网站时,它打开时没有错误。
【问题讨论】: