0

簡単なRSSフィードのチュートリアルを行っていますが、残念ながら問題が発生しました。チュートリアル:http ://www.cse.nd.edu/courses/cse40814/www/RSS_Android.pdf

(より詳細なチュートリアルは、帯域幅の制限に達したWebサイトにあります。)

コードはほとんど同じですが、識別しやすいようにいくつかの変数を変更しました。何もコピー&ペーストしなかったので、タイピング中に間違えた可能性がありますが、疑わしいです。私のログが私に伝える唯一のことは、それがテストウェブサイトを開くことができないということです。コンソールはエラーを認識しません。

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();

    }
}

必要に応じてすべてのコードを一覧表示できますが、エラーはこれら2つのクラスのどこかにあると思います。よろしくお願いします。

編集:私が使用していたフィードは無効でした、私は現在使用しています:http: //rss.nytimes.com/services/xml/rss/nyt/HomePage.xml

また、実際のデバイスを入手したため、ログにもう1つエラーが表示されます。

12-29 22:19:02.608: W/global(11470): [DNS] InetAddress.lookupHostByName NOT CACHED, so DNS Query

ただし、これはエミュレーターには表示されません。

編集:マニフェストを更新しました。何かが原因でアクセス許可タグが認識されませんでしたが、何がわかりません...「開くことができませんでした」というエラーはもう発生しませんが、今は作成しようとしていますログの意味...AndDevWebサイトには、lookupHostByNameをカバーするものは何もありませんが、探しているものが見つからないようです。おそらく、使用しているRSSフィードが機能しない可能性があります。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..

これらは解析中のエラーを指していると思いますか?わからない。

4

1 に答える 1

0

別のチュートリアルの使用を開始しました。コードの一部が無効で古くなっています。

于 2013-04-20T05:02:15.497 に答える