当我尝试显示我的ip usig Inet时,为什么我的应用程序崩溃?

时间:2017-02-26 12:09:44

标签: android

我正在尝试使用Inet显示我的IP地址,但是当我这样做时应用程序崩溃了.. 我需要添加任何权限,以便不会发生这种情况吗?以下是我的代码

try {
            Inet4Address ip= (Inet4Address) Inet4Address.getLocalHost();
            String s=ip.toString();
            TextView text= (TextView)findViewById(R.id.txt);
            text.setText(s);
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }

1 个答案:

答案 0 :(得分:0)

android不允许你直接在主线程中运行任何与网络相关的工作,所以你得到了这个例外:

android.os.NetworkOnMainThreadException 

像这样运行你的代码:

Thread thread = new Thread(){
        public void run(){
            try {
                Inet4Address ip= (Inet4Address) Inet4Address.getLocalHost();
                String s=ip.toString();

             TextView text= (TextView)findViewById(R.id.txt);
              text.setText(s);
                Log.e("my ip=> ",s+" <<");
            } catch (UnknownHostException e) {
                e.printStackTrace();
            }
        }
    };

    thread.start();

它只是运行你编写另一个线程......