本帖最后由 CCDDzclxy 于 2013-09-17 20:50:53 编辑

解决方案 »

  1.   

    你要没有看logcat里面的异常信息呀。应该是权限的问题。你看看是不是。
      

  2.   

    权限的话,是否是说这个:
    我在 AndroidManifest.xml 里面有加如下两句:
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      

  3.   

    是呀,debug吧。里面显示在append那一句出空引用异常了。说明:
    1 调用getName时出错了,应该是刚才说的权限的问题,需要在xml文件中添加访问网络的权限
    2 检查一下那个etmsg的id和xml里面的是否一致
      

  4.   

    确实,我把 etMsg.append(e.getMessage()); 改成 etMsg.append("err"); 就有 “err”显示出来了,就说明 getByName 出错了啊,是权限问题??我加了 3楼 的两行代码了啊...
      

  5.   

    我改成:         catch(Exception e)
             {
             String strErr = e.getMessage();
             etMsg.append("err : "+strErr);
             }
    就打印出 :“err : null” 。这说明说明 ???...
      

  6.   

    我加了一个:    <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/btnDns"
            android:layout_marginTop="14dp"
            android:autoLink="all"
            android:text="http://www.baidu.com/" />
    点击链接时,是可以打开 baidu 页面的,应该说明是有上网权限的吧...
      

  7.   

    就是e.getMessage()返回null了,有点奇怪。用e.printTraceStack输出看看有没有可以参考的内容。
      

  8.   

    改成这样:         catch(Exception e)
             {
             //etMsg.append(e.getMessage()); // 直接这样就错...
             String strErr = e.getMessage();
             etMsg.append("err : "+strErr+"\r\n");
            
             StringWriter sw = new StringWriter();  
             PrintWriter pw = new PrintWriter(sw);  
             e.printStackTrace(pw);  
             //System.out.println(sw.toString().toUpperCase());  
             etMsg.append(sw.toString().toUpperCase());
             }
    输出信息为:
    (不会到虚拟机里面去取文件... 就只有打印出来了,截了4张图...我看了也没看明白是哪的问题...)
      

  9.   

    找到了,是 NetworkOnMainThreadException ,主线程不能访问网络 的限制 :
    http://www.eoeandroid.com/thread-272038-1-1.html