应用程序适用于模拟器,但不适用于真实设备

时间:2013-08-26 17:24:09

标签: android eclipse parsing jsoup

目前在本教程Android XML Adventure – Parsing HTML using JSoup之后,应用程序可在模拟器中运行,但在设备上的TextView中显示错误。

我已将jsoup-1.7.2.jar复制并粘贴到libs中,在AndroidManifest.xml中设置<uses-permission android:name="android.permission.INTERNET"/>并设置TextView android:id="@+id/tv"。这就是我Project Explorer的样子。

这是JsoupActivity.java

package com.jsoupstudyactivity;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.view.Menu;

public class JSoupActivity extends Activity {

    // blog url
    static final String BLOG_URL = "http://xjaphx.wordpress.com/";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         // process
        try {
            ((TextView)findViewById(R.id.tv)).setText(getBlogStats());
        } catch (Exception ex) {
            ((TextView)findViewById(R.id.tv)).setText("Error");
        }
    }

    protected String getBlogStats() throws Exception {
        String result = "";
        // get html document structure
        Document document = Jsoup.connect(BLOG_URL).get();
        // selector query
        Elements nodeBlogStats = document.select("div#blog-stats-2 ul li");
        // check results
        if(nodeBlogStats.size() > 0) {
            // get value
            result = nodeBlogStats.get(0).text();
        }

        // return
        return result;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.jsoup, menu);
        return true;
    }

}

1 个答案:

答案 0 :(得分:1)

试试这个(block-stats-2而不是block-stats)

Elements nodeBlogStats = document.select("div#blog-stats-2 ul li");

你应该得到657,462查看。