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 スレッドからネットワーク操作を行うことはできないため、onCreate() から JSoup.connect() を取り出し、ASyncTask を使用する必要があります。

于 2015-02-19T13:59:09.863 に答える