Java 我将getHostAddress()与try-catch一起使用,但是当我运行它时,它不会运行,这有什么不对?

Java 我将getHostAddress()与try-catch一起使用,但是当我运行它时,它不会运行,这有什么不对?,java,android,eclipse,Java,Android,Eclipse,它会随着对话框停止,我应该使用其他方法还是任何其他方法来使用它。我使用了getHostAddress和try-catch,但是当我运行它时,它只是不运行,这有什么问题 我猜您正在尝试获取环回地址的主机,这会引发异常,因为它不会解析到任何主机。您可能捕获到了该异常,但由于您没有内部代码,您认为什么也没有发生 顺便说一句:捕获所有异常是一种不好的做法,因为您可能捕获了try块不打算捕获的某些异常。您可以阅读更多信息。是否停止使用该对话框?例外说明了什么?如果您需要帮助,我们需要疑难解答信息。@use

它会随着对话框停止,我应该使用其他方法还是任何其他方法来使用它。我使用了getHostAddress和try-catch,但是当我运行它时,它只是不运行,这有什么问题

我猜您正在尝试获取环回地址的主机,这会引发异常,因为它不会解析到任何主机。您可能捕获到了该异常,但由于您没有内部代码,您认为什么也没有发生


顺便说一句:捕获所有异常是一种不好的做法,因为您可能捕获了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);
            }
        });
    }
}