Android中的get()导致Jsoup错误

时间:2011-06-23 18:21:01

标签: android jsoup

我正在尝试在我的Android应用程序中使用Jsoup 1.6.0,但由于某种原因它崩溃了。我简化了我的代码:

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

public class JsoupTestActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        try {
            Document d = Jsoup.connect("http://www.google.com").get();
        } catch (Exception e) {
            Toast t = Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG);
            t.show();
        }
    }
}

但是每当我在手机上(在USB调试模式下)或在模拟器上运行上述内容时,我都会收到一条消息,表明我的程序意外崩溃了 - 甚至没有发现错误。如果我用

替换try块的内容
 Jsoup.connect("http://www.google.com");

程序工作正常,所以似乎get()方法导致问题......

仅供参考,在我的AndroidManifest.xml中我确实包含了

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

在正确的位置,而R.layout.main是ADT在创建新项目时生成的默认布局。我正在为此项目使用Android API级别7。我如何让它工作?

2 个答案:

答案 0 :(得分:0)

尝试下载新版本的Jsoup并将jsoup-1.6.x.jar粘贴到项目的 libs 文件夹中。

答案 1 :(得分:0)

你不能从UI线程做网络操作,所以你应该从你的onCreate()中取出JSoup.connect()并使用ASyncTask