首页 > 解决方案 > 运行 AsyncTask 的致命异常

问题描述

我在尝试添加要解析的 url 时遇到问题,我得到一个FATAL EXCEPTION: AsyncTask # 1错误,我不明白为什么。

这就是我解析数据的方式:

@Override
        protected ArrayList<TMOLectorClase> doInBackground(Void... voids) {
            String url = getIntent().getStringExtra("url");

            tmoLectorClases.clear();
            try {
                Document doc = Jsoup.connect(url).get();

                Elements data = doc.select("div");
                for (Element e : data) {
                    String urlRedireccionada = e.select("div.OUTBRAIN").attr("data-src");
                    try {

                        doc = Jsoup.connect(urlRedireccionada).get();

                        Elements dataNuevo = doc.select("div.img-container.text-center");
                        for (Element e1 : dataNuevo) {
                            String imgUrl = e1.select("img").attr("src");
                            tmoLectorClases.add(new TMOLectorClase(imgUrl));
                        }
                    }  catch (IOException ie) {
                        ie.printStackTrace();
                    }
                }
            }  catch (IOException e) {
                e.printStackTrace();
            }
            return tmoLectorClases;
        }

错误LogCat我标记了这一行:

doc = Jsoup.connect(urlRedireccionada).get();

出现错误

Caused by: java.lang.IllegalArgumentException: Must supply a valid URL

发生的事情是这个url,它变成了这个,urlRedireccion我尝试将图像从. 有人可以告诉我如何解决吗?调试代码,然后调试有效的 url:urlRedireccionRecyclerView

在此处输入图像描述

标签: androidandroid-studiojsoup

解决方案


String解决方案是使用重定向的 url创建一个:

String nuevaUrl = Jsoup.connect(url).followRedirects(true).execute().url().toExternalForm();

之后,您将添加到您的Document

Document doc = Jsoup.connect(nuevaUrl).get();

推荐阅读