1

私はhtmlコードを解析するためにjsoupを使用しています。明らかにAsyncTaskを使用していますが、null(javanullpointerexception)を返しています。

private class LoadDocument extends AsyncTask<String, Void, Document>
    {

        ProgressDialog mProgressDialog;



        @Override
        protected void onPreExecute() {
            mProgressDialog = ProgressDialog.show(Parser.this, "Loading...", "Recuperation donnees...");
        }



        @Override
        protected Document doInBackground(String... url) {
            url[0] = urll;

                try {
                    document = Jsoup.connect(url[0])
                            .data("query", "Java")
                            .userAgent("Mozilla")
                            .cookie("auth", "token")
                            .timeout(10000)
                            .post();
                } catch (IOException e) {
                    e.printStackTrace();
                }



            return document;
        }

        @Override
        protected void onPostExecute(Document result) {
             document=result;
            mProgressDialog.dismiss();

        }


}

次に、タスクを実行してドキュメントを返します。

urll= //the website
document=new LoadDocument().execute(urll).get();

そのドキュメントは常にnullだと思います。私のコードで何が問題になっていますか? 助けてくれてありがとう。

4

4 に答える 4

2

コードに問題はありません。ログに記録してくださいDocument.text();Can you try changed the one line to check: doc = Jsoup.connect("http://stackoverflow.com").get();then use Document.text()in your log.

于 2012-12-22T17:57:51.397 に答える
1

AsyncTask.execute()結果を返しません。代わりに、タスク自体への参照を返します。onPostExecute結果は、タスクが完了すると、メソッドでのみ使用できます。

于 2012-12-22T17:49:47.277 に答える
0

問題は、コードtry catch周辺のブロック内のどこかにあります。Jsoupの代わりにprintStackTraceを使用して何かをログに記録しLog.e、LogCat の出力を確認します。

于 2012-12-22T18:00:10.543 に答える
0

そのコードでは多くの人が間違っている可能性があります:

url[0]

空の文字列にすることができます...

そのステートメントを次のように分割します。

Jsoup.connect(url[0])

+

.data("query", "Java")
                            .userAgent("Mozilla")
                            .cookie("auth", "token")
                            .timeout(10000)
  • 。役職();

少なくとも

于 2012-12-22T17:49:13.103 に答える