java - 使用jsoup获取url的异常调度输入事件

标签 java android exception jsoup

尝试使用 jsoup 解析网站时,下面的 onTouch 方法总是在 Jsoup.parse(url, 3000);

处抛出
public boolean onTouch(View v, MotionEvent event) {
    try {
        URL url = new URL("http://www.google.com");
        Document xmlDoc = Jsoup.parse(url, 3000);
        Elements title = xmlDoc.select("title");
        textView.setText(title.get(0).text());
    } catch (MalformedURLException e1) {
        e1.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    // ...
}

逻辑猫:

03-01 09:44:08.901  23601-23601/com.takepickpicturedemo E/InputEventReceiver﹕ Exception dispatching input event.
03-01 09:44:08.902  23601-23601/com.takepickpicturedemo E/MessageQueue-JNI﹕ Exception in MessageQueue callback: handleReceiveCallback
03-01 09:44:08.903  23601-23601/com.takepickpicturedemo E/MessageQueue-JNI﹕ android.os.NetworkOnMainThreadException
            at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1273)
            at java.net.InetAddress.lookupHostByName(InetAddress.java:431)
            at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
            at java.net.InetAddress.getAllByName(InetAddress.java:215)
            at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29)
            at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188)
            at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157)
            at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:100)
            at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:357)
            at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:340)
            at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330)
            at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248)
            at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:433)
            at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:114)
            at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:512)
            at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:493)
            at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:205)
            at org.jsoup.helper.HttpConnection.get(HttpConnection.java:194)
            at org.jsoup.Jsoup.parse(Jsoup.java:183)
            at com.takepickpicturedemo.MainActivity.onTouch(MainActivity.java:449)
            at android.view.View.dispatchTouchEvent(View.java:9290)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
            at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2403)
            at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1737)
            at android.app.Activity.dispatchTouchEvent(Activity.java:2765)
            at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:59)
            at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2364)
            at android.view.View.dispatchPointerEvent(View.java:9514)
            at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4230)
            at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4096)
            at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642)
            at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695)
            at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661)
            at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3787)
            at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3669)
            at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3844)
            at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642)
            at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695)
            at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661)
            at android.vie
03-01 09:44:08.905  23601-23601/com.takepickpicturedemo D/AndroidRuntime﹕ Shutting down VM

JSOUP:1.8.3

IDE:Android Studio 1.3.1

虚拟机:Nexus 5 API23 x86

最佳答案

查看堆栈跟踪,您似乎正在尝试在主线程上进行网络调用(NetworkOnMainThreadException)。尝试在后台线程的 onTouch 处理程序中运行代码,例如使用 AsyncTask

关于java - 使用jsoup获取url的异常调度输入事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35719877/

相关文章:

java - 由于缺少 EmbeddedServletContainerFactory bean,无法启动 EmbeddedWebApplicationContext

java - 如何获取同时包含JSON对象和数组的JSON数据

C++ 异常错误

java - 对象存在于 HTML 中,但我无法选择它

java - 在 Eclipse 中构建 Ant 失败

java - 忽略记录第三方库的重复异常消息

java - 在 Android 中使用 Sip Api 的质量很差

android - Android 中 crittercism 的 NotificationActivity 的目的是什么

C# 将文件中的加密数据传递到内存流中。抛出异常

android - 使用 ACRA 发送自定义数据而不发送异常本身