【问题标题】:jsoup unknown host exceptionjsoup 未知主机异常
【发布时间】:2013-04-06 04:28:42
【问题描述】:

这是我已经工作了 3 天的代码。我无法找出它抛出的原因:

java.net.UnknownHostException:
Unable to resolve host "www.google.co.in": No address associated with hostname

下面是MainActivity 类:

package com.example.yo;

import java.io.IOException;
import java.net.*;

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

import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

@TargetApi(Build.VERSION_CODES.GINGERBREAD)
public class MainActivity extends Activity {

    Document doc;
    TextView tv;
    String res = "";

    String BLOG_URL = "https://www.google.co.in/";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // set layout view
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        new jsoupexample().execute(BLOG_URL);
    }

    @TargetApi(Build.VERSION_CODES.GINGERBREAD)
    public class jsoupexample extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... arg0) {
            // TODO Auto-generated method stub
            try {
                doc = Jsoup.connect(BLOG_URL).userAgent("Mozilla/5.0").timeout(20000).get();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            Elements links = doc.select("a[href]");

            for (Element element : links) {
                res = element.attr("href");
            }
            return res;
        }
    }

    protected void onPostExecute(String result) {
        if (result != null && !result.isEmpty()) {
            tv.setText(result);
        } else {
            tv.setText("no value returned");
        }
    }
}

这是日志:

04-14 00:23:32.800: W/System.err(26397): java.net.UnknownHostException: Unable to resolve host "www.google.co.in": No address associated with hostname
04-14 00:23:32.810: W/System.err(26397):    at java.net.InetAddress.lookupHostByName(InetAddress.java:394)
04-14 00:23:32.810: W/System.err(26397):    at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
04-14 00:23:32.820: W/System.err(26397):    at java.net.InetAddress.getAllByName(InetAddress.java:214)
04-14 00:23:32.820: W/System.err(26397):    at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70)
04-14 00:23:32.820: W/System.err(26397):    at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
04-14 00:23:32.820: W/System.err(26397):    at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
04-14 00:23:32.820: W/System.err(26397):    at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
04-14 00:23:32.820: W/System.err(26397):    at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
04-14 00:23:32.820: W/System.err(26397):    at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316)
04-14 00:23:32.820: W/System.err(26397):    at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:461)
04-14 00:23:32.820: W/System.err(26397):    at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.connect(HttpsURLConnectionImpl.java:442)
04-14 00:23:32.820: W/System.err(26397):    at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290)
04-14 00:23:32.820: W/System.err(26397):    at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240)
04-14 00:23:32.820: W/System.err(26397):    at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:81)
04-14 00:23:32.820: W/System.err(26397):    at libcore.net.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:165)
04-14 00:23:32.830: W/System.err(26397):    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:425)
04-14 00:23:32.830: W/System.err(26397):    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:410)
04-14 00:23:32.830: W/System.err(26397):    at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:164)
04-14 00:23:32.830: W/System.err(26397):    at org.jsoup.helper.HttpConnection.get(HttpConnection.java:153)
04-14 00:23:32.830: W/System.err(26397):    at com.example.yo.MainActivity$jsoupexample.doInBackground(MainActivity.java:50)
04-14 00:23:32.830: W/System.err(26397):    at com.example.yo.MainActivity$jsoupexample.doInBackground(MainActivity.java:1)
04-14 00:23:32.830: W/System.err(26397):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
04-14 00:23:32.830: W/System.err(26397):    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
04-14 00:23:32.830: W/System.err(26397):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
04-14 00:23:32.830: W/System.err(26397):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
04-14 00:23:32.830: W/System.err(26397):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
04-14 00:23:32.830: W/System.err(26397):    at java.lang.Thread.run(Thread.java:856)
04-14 00:23:48.490: W/dalvikvm(26397): threadid=11: thread exiting with uncaught exception (group=0x41767930)
04-14 00:23:48.510: E/AndroidRuntime(26397): FATAL EXCEPTION: AsyncTask #1
04-14 00:23:48.510: E/AndroidRuntime(26397): java.lang.RuntimeException: An error occured while executing doInBackground()
04-14 00:23:48.510: E/AndroidRuntime(26397):    at android.os.AsyncTask$3.done(AsyncTask.java:299)
04-14 00:23:48.510: E/AndroidRuntime(26397):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
04-14 00:23:48.510: E/AndroidRuntime(26397):    at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
04-14 00:23:48.510: E/AndroidRuntime(26397):    at java.util.concurrent.FutureTask.run(FutureTask.java:239)
04-14 00:23:48.510: E/AndroidRuntime(26397):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
04-14 00:23:48.510: E/AndroidRuntime(26397):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
04-14 00:23:48.510: E/AndroidRuntime(26397):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
04-14 00:23:48.510: E/AndroidRuntime(26397):    at java.lang.Thread.run(Thread.java:856)
04-14 00:23:48.510: E/AndroidRuntime(26397): Caused by: java.lang.NullPointerException
04-14 00:23:48.510: E/AndroidRuntime(26397):    at com.example.yo.MainActivity$jsoupexample.doInBackground(MainActivity.java:57)
04-14 00:23:48.510: E/AndroidRuntime(26397):    at com.example.yo.MainActivity$jsoupexample.doInBackground(MainActivity.java:1)
04-14 00:23:48.510: E/AndroidRuntime(26397):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
04-14 00:23:48.510: E/AndroidRuntime(26397):    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
04-14 00:23:48.510: E/AndroidRuntime(26397):    ... 4 more

【问题讨论】:

  • 请再按一次大写锁定。
  • 你必须大写吗?
  • @GunjitDhawan 你找到解决办法了吗?

标签: android jsoup


【解决方案1】:

出现java.net.UnknownHostException: Unable to resolve host 异常是因为您的应用无法连接到指定的主机。

可能的原因是您的互联网连接实际上已关闭。您可以使用ping 命令对其进行测试。

另一个常见原因是您的 Android 清单文件 AndroidManifest.xml 中缺少访问互联网的权限。

如果您尚未添加该权限,请将下面的行添加到您的 AndroidManifest.xml 文件中,就在 &lt;manifest&gt; 标记之后和 &lt;application&gt; 标记之前:

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

有关 Android 互联网权限语法和其他 AndroidManifest 权限示例的更多信息,请查看 android.com 的示例:http://developer.android.com/tools/samples/index.html

【讨论】:

    【解决方案2】:

    你真的需要https吗?我建议尝试使用http

    【讨论】:

    • 试过它不起作用..在我的代码中纠正了总和,比如调用 super.onPostExecute(result),现在它给出 NullPointerException
    猜你喜欢
    • 1970-01-01
    • 2011-05-24
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 2018-09-21
    • 1970-01-01
    相关资源
    最近更新 更多