2011-01-02 11 views
0

Ich bin neu in Android Application Development. Ich versuche einen RSS-Feed-Parser mit rssutil.jar zu erstellen. Das Stück des Codes ist:RSS Parsing mit rssutil.jar funktioniert nicht auf Android

private void ReadRSS() { 
String tag = "READRSS"; 
try { 
//Create Parser 
RssParser parser = RssParserFactory.createDefault(); 

//Parse out URL 
URL url = new URL("http://www.espncricinfo.com/rss/content/story/feeds/0.xml"); 

Rss rss = parser.parse(url); 
if(rss.getChannel() ==null) 
{ 
    tv.append("NULL"); 
    return; 
} 

Collection items = rss.getChannel().getItems(); 
if(items!=null && !items.isEmpty()) 
{ 
    for(Iterator i = items.iterator();i.hasNext();) 
    { 
    Item item = (Item)i.next(); 
    tv.append("Title:"+item.getTitle()); 
    tv.append("Link:" + item.getLink()); 
    tv.append("Description:"+item.getDescription()); 
    } 
} 

} catch (RssParserException e) { 
// TODO Auto-generated catch block 
Log.v(tag, "RSSParserException"); 
e.printStackTrace(); 
} catch (MalformedURLException e) { 
// TODO Auto-generated catch block 
Log.v(tag, "MalformedURLException"); 
e.printStackTrace(); 
} catch (IOException e) { 
// TODO Auto-generated catch block 
Log.v(tag, "IOException"); 
e.printStackTrace(); 
} 

}

Dieser Code funktioniert gut, wenn es als Java-Anwendung ausgeführt, aber wenn ich versuche, dann bekomme ich rss.getChannel in Android-Handy oder Emulator auszuführen() als null, kann jemand bitte lassen Sie mich wissen, warum gibt es einen Unterschied in der Bedienung zwischen Java und Android in diesem Fall? Was sollte ich tun, damit es für Android-Handy funktioniert?

Danke.

+0

Klingt eine ganze Reihe von Möglichkeiten würde zu Problemen führen. Vor allem Android Dalvik VM ist sehr anders als normale VM. Was ist die Paketabhängigkeit des RSSParser? – xandy

+0

Hallo. Ich habe das gleiche Problem. Dieser Code funktioniert nicht auf android 2.1. Hast du eine Lösung gefunden? –

Antwort

0

Wahrscheinlich haben Sie vergessen, die Berechtigung zur Verwendung von Internet in AndroidManifest.xml festzulegen.

<uses-permission android:name="android.permission.INTERNET"></uses-permission>