public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
     if(item.getItemId()==UPDATE){
String xml=downloadXML("http://192.168.1.38:8080/mp3/resources.xml");
System.out.println("xml~~~~"+xml);
         }
打印的时候打印不出后面的xml
运行时报错:
 java.lang.IllegalStateException: problem parsing line: null at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1084)
在线等答案啊,求大神帮助~~

解决方案 »

  1.   

    不是打印方面的问题,建议你发详细的Log信息上来,应该是在downloadXML里面下载文件里面的解析XML文件出错。
      

  2.   

    你好这是Log里的详细信息,麻烦你啦,帮我看看到底是什么问题,应该不是HttpDownloader解析XML文件出错了。。是不是我地址不对啊,或者TOMCAT有问题,MP3文件已经放在我TOMCAT中webapps文件夹下面了
    public boolean onOptionsItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
         if(item.getItemId()==UPDATE){
    String xml=downloadXML("http://192.168.1.38:8080/mp3/resources.xml");
    System.out.println("xml"+"~~~~"+xml);
    }else if(item.getItemId()==ABOUT){

    }
    return super.onOptionsItemSelected(item);
    }
        private String downloadXML(String urlStr){
         HttpDownloader httpdownloader=new HttpDownloader();
         String result=httpdownloader.download(urlStr);
         return result;
        }
     android.os.NetworkOnMainThreadException
     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1084)
      at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:74)
        at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
         at libcore.io.IoBridge.connect(IoBridge.java:112)
         at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
        at java.net.Socket.connect(Socket.java:842)
        at libcore.net.http.HttpConnection.<init>(HttpConnection.java:77)
        at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
         at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:351)
        at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:86)
         at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
        at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:308)
        at libcore.net.http.HttpEngine.connect(HttpEngine.java:303)
         at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282)
         at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:232)
        at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:273)
        at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168)
       at com.download.HttpDownloader.download(HttpDownloader.java:18)
         at com.kaikai.mp3play.Mp3ListActivity.downloadXML(Mp3ListActivity.java:48)
         at com.kaikai.mp3play.Mp3ListActivity.onOptionsItemSelected(Mp3ListActivity.java:37)
         at android.app.Activity.onMenuItemSelected(Activity.java:2502)
         at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:950)
        at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735)
       at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149)
        at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874)
         at com.android.internal.view.menu.ListMenuPresenter.onItemClick(ListMenuPresenter.java:163)
         at android.widget.AdapterView.performItemClick(AdapterView.java:292)
        at android.widget.AbsListView.performItemClick(AbsListView.java:1058)
        at android.widget.AbsListView$PerformClick.run(AbsListView.java:2514)
        at android.widget.AbsListView$1.run(AbsListView.java:3168)
       at android.os.Handler.handleCallback(Handler.java:605)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
         at android.app.ActivityThread.main(ActivityThread.java:4340)
         at java.lang.reflect.Method.invokeNative(Native Method)
         at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
        at dalvik.system.NativeStart.main(Native Method)
     java.lang.NullPointerException
        at com.download.HttpDownloader.download(HttpDownloader.java:26)
        at com.kaikai.mp3play.Mp3ListActivity.downloadXML(Mp3ListActivity.java:48)
         at com.kaikai.mp3play.Mp3ListActivity.onOptionsItemSelected(Mp3ListActivity.java:37)
        at android.app.Activity.onMenuItemSelected(Activity.java:2502)
         at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:950)
        at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735)
         at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149)
         at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874)
         at com.android.internal.view.menu.ListMenuPresenter.onItemClick(ListMenuPresenter.java:163)
         at android.widget.AdapterView.performItemClick(AdapterView.java:292)
        at android.widget.AbsListView.performItemClick(AbsListView.java:1058)
         at android.widget.AbsListView$PerformClick.run(AbsListView.java:2514)
        at android.widget.AbsListView$1.run(AbsListView.java:3168)
         at android.os.Handler.handleCallback(Handler.java:605)
       at android.os.Handler.dispatchMessage(Handler.java:92)
         at android.os.Looper.loop(Looper.java:137)
         at android.app.ActivityThread.main(ActivityThread.java:4340)
         at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
        at dalvik.system.NativeStart.main(Native Method)
     Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@4127a0f0
      

  3.   

    Mp3ListActivity.java文件发上来看看。
      

  4.   

    package com.kaikai.mp3play;import android.app.ListActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;import com.download.HttpDownloader;public class Mp3ListActivity extends ListActivity {
    private static final int UPDATE=1;
    private static final int ABOUT=2;
    /**
     * 在用户点击MENU按钮后会调用该方法
     */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    // TODO Auto-generated method stub
    menu.add(0, UPDATE, 1, R.string.mp3list_update);
         menu.add(0, ABOUT, 2, R.string.mp3list_about);
    return super.onCreateOptionsMenu(menu);
    } /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
        }
           @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
         if(item.getItemId()==UPDATE){
    String xml=downloadXML("http://192.168.1.38:8080/mp3/resources.xml");
    System.out.println("xml"+"~~~~"+xml);


    }else if(item.getItemId()==ABOUT){

    }
    return super.onOptionsItemSelected(item);
    }
        private String downloadXML(String urlStr){
         HttpDownloader httpdownloader=new HttpDownloader();
         String result=httpdownloader.download(urlStr);
         return result;
        }
        
    }
      

  5.   

    package com.download;import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;public class HttpDownloader {

         public String download(String urlStr){
          
          StringBuffer sb=new StringBuffer();
          String line=null;
          BufferedReader buffer=null;
          try{
          URL url=new URL(urlStr);
          HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();
          buffer=new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
          while((line=buffer.readLine())!=null){
          sb.append(line);
          }
          }catch(Exception e){
          e.printStackTrace();
          }finally{
          try{
          buffer.close();
          }catch(Exception e){
          e.printStackTrace();
          }
          }
          return sb.toString();
         }
    }
      

  6.   

    package com.kaikai.mp3play;import android.app.ListActivity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;import com.download.HttpDownloader;public class Mp3ListActivity extends ListActivity {
    private static final int UPDATE=1;
    private static final int ABOUT=2;
    /**
     * 在用户点击MENU按钮后会调用该方法
     */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    // TODO Auto-generated method stub
    menu.add(0, UPDATE, 1, R.string.mp3list_update);
         menu.add(0, ABOUT, 2, R.string.mp3list_about);
    return super.onCreateOptionsMenu(menu);
    } /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
        }
           @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
         if(item.getItemId()==UPDATE){
    String xml=downloadXML("http://192.168.1.38:8080/mp3/resources.xml");
    System.out.println("xml"+"~~~~"+xml);


    }else if(item.getItemId()==ABOUT){

    }
    return super.onOptionsItemSelected(item);
    }
        private String downloadXML(String urlStr){
         HttpDownloader httpdownloader=new HttpDownloader();
         String result=httpdownloader.download(urlStr);
         return result;
        }
        
    }
      

  7.   

    NetworkOnMainThreadException这个错误意思是在主线程中执行了网络操作,所以,将String xml=downloadXML("http://192.168.1.38:8080/mp3/resources.xml");这段代码放到单独的线程中执行。