Java 我将getHostAddress()与try-catch一起使用,但是当我运行它时,它不会运行,这有什么不对?
它会随着对话框停止,我应该使用其他方法还是任何其他方法来使用它。我使用了getHostAddress和try-catch,但是当我运行它时,它只是不运行,这有什么问题 我猜您正在尝试获取环回地址的主机,这会引发异常,因为它不会解析到任何主机。您可能捕获到了该异常,但由于您没有内部代码,您认为什么也没有发生Java 我将getHostAddress()与try-catch一起使用,但是当我运行它时,它不会运行,这有什么不对?,java,android,eclipse,Java,Android,Eclipse,它会随着对话框停止,我应该使用其他方法还是任何其他方法来使用它。我使用了getHostAddress和try-catch,但是当我运行它时,它只是不运行,这有什么问题 我猜您正在尝试获取环回地址的主机,这会引发异常,因为它不会解析到任何主机。您可能捕获到了该异常,但由于您没有内部代码,您认为什么也没有发生 顺便说一句:捕获所有异常是一种不好的做法,因为您可能捕获了try块不打算捕获的某些异常。您可以阅读更多信息。是否停止使用该对话框?例外说明了什么?如果您需要帮助,我们需要疑难解答信息。@use
顺便说一句:捕获所有异常是一种不好的做法,因为您可能捕获了try块不打算捕获的某些异常。您可以阅读更多信息。是否停止使用该对话框?例外说明了什么?如果您需要帮助,我们需要疑难解答信息。@user3293724您是否提供异常的堆栈跟踪。getLocalHost的javadoc说,这是通过从系统检索主机名,然后将该名称解析为InetAddress来实现的。。名称解析不可用/速度慢?我猜是NetworkOnMainThreadException。请记录您的异常堆栈跟踪,不要忽略它们。
public class MainA extends Activity {
WifiManager wifi=(WifiManager)getSystemService(Context.WIFI_SERVICE);
WifiInfo info=wifi.getConnectionInfo();
String ip;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bt=(Button)findViewById(R.id.b1);
try{
InetAddress ownIP=InetAddress.getLocalHost();
ip=ownIP.getHostAddress();
//System.out.println("IP of my Android := "+ownIP.getHostAddress());
}catch (Exception e){
//System.out.println("Exception caught ="+e.getMessage());
}
bt.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
TextView tv1=(TextView)findViewById(R.id.tv1);
tv1.setText(ip);
}
});
}
}