我正在做一个简单的RSS Feed教程,不幸的是出了点问题。 教程:http://www.cse.nd.edu/courses/cse40814/www/RSS_Android.pdf
(更详细的教程是在达到带宽限制的网站上。)
代码几乎相同,减去我改变的一些变量,使我更容易识别。我没有复制和粘贴任何东西,所以我可能在输入时犯了一个错误,但我对此表示怀疑。我的日志告诉我的唯一一件事是它无法打开测试网站。 控制台不会识别错误。
logcat的:
12-29 21:16:40.062: E/RssReader(614): Couldn't open http://www.southbendtribune.com/ws/content/collection/?collection=sbt_sports_photogalleries&key=d3IwcUN6Ym9NVEV0MWkzcEJsVEU2UFp3bWxmbVRzWFBxbVNyc0pjd1BOWjk4alBLSEpOdHRJVlhXK1dscWhvZg&version=1.0&limit=20
主要活动:
package tutorials.baseRSSReader;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class StartMain extends Activity {
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.start_main);
try {
// Create RSS reader
RssReader rssReader = new RssReader("http://www.southbendtribune.com/ws/content/collection/?collection=sbt_sports_photogalleries&key=d3IwcUN6Ym9NVEV0MWkzcEJsVEU2UFp3bWxmbVRzWFBxbVNyc0pjd1BOWjk4alBLSEpOdHRJVlhXK1dscWhvZg&version=1.0&limit=20");
// Get a ListView from main view
ListView Items = (ListView) findViewById(R.id.listView1);
// Create a list adapter
ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(this,android.R.layout.simple_list_item_1, rssReader.getItems());
// Set list adapter for the ListView
Items.setAdapter(adapter);
// Set list view item click listener
Items.setOnItemClickListener(new ListListener(rssReader.getItems(), this));
} catch (Exception e) {
Log.e("RssReader", e.getMessage());
}
}
}
RssReader:
package tutorials.baseRSSReader;
import java.util.List;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
public class RssReader {
private String rssURL;
public RssReader(String rssURL)
{
this.rssURL = rssURL;
}
public List<RssItem> getItems() throws Exception {
// SAX parse RSS data
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
RssParseHandler handler = new RssParseHandler();
saxParser.parse(rssURL, handler);
return handler.getItems();
}
}
如果需要,我可以列出所有代码,但我认为错误是在这两个类中的某个地方。我提前感谢你的帮助。
编辑: 我使用的Feed无效,我现在正在使用:http://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml
由于我掌握了一个实际的设备,我在Log中又收到了一个错误:
12-29 22:19:02.608: W/global(11470): [DNS] InetAddress.lookupHostByName NOT CACHED, so DNS Query
我在模拟器中看不到这一点。
编辑: 刷新清单,导致它无法识别权限标记的东西,但我不确定是什么... 我不再得到“无法打开”错误,但现在我正试图理解Log ... AndDev网站上没有任何内容涵盖lookupHostByName,但在我看来,它无法找到它正在寻找的东西,也许我正在使用的RSS Feed无效。 logcat的:
12-31 13:34:36.314: W/global(2805): [DNS] InetAddress.lookupHostByName NOT CACHED, So DNS Query
12-31 13:34:36.384: W/global(2805): [DNS] name(rss.nytimes.com), IN, AAAA, CNAME, TTL=4m16s
12-31 13:34:36.384: W/global(2805): [DNS] name(rss.nytimes.com), IN, AAAA, CNAME, TTL=11m44s
12-31 13:34:36.384: W/global(2805): [DNS] name(rss.nytimes.com), IN, A, CNAME, TTL=4m16s
12-31 13:34:36.384: W/global(2805): [DNS] name(rss.nytimes.com), IN, A, CNAME, TTL=11m44s
12-31 13:34:36.384: W/global(2805): [DNS] name(rss.nytimes.com), IN, A, A, TTL=50S
12-31 13:34:36.384: W/global(2805): [DNS] InetAddress.lookupHostByName ttl= 50
12-31 13:34:36.384: W/global(2805): [DNS] AddressCache.customTtl : ttlS= 50
12-31 13:34:36.645: W/global(2805): [DNS] InetAddress.lookupHostByName host = rss.nytimes.com => cached..
我认为这些在解析时会引用错误?我不确定。
答案 0 :(得分:0)
开始使用其他教程时,某些代码无效且过时。