2

我试图在我的 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 级。我怎样才能让它工作?

4

2 回答 2

0

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

于 2012-07-04T12:01:35.563 回答
0

您不能从 UI 线程执行网络操作,因此您应该将 JSoup.connect() 从 onCreate() 中取出并使用 ASyncTask

于 2015-02-19T13:59:09.863 回答