NullPointerException-我不知道[重复]在哪里。

问题描述 投票:-6回答:1

对不起,我把NullPointerException泛滥的问题扩大了 :D

我读了很多关于NullPointerException的问题,但是我不知道我的代码中哪里有问题。

有问题的行。

if(userAgent.doc.innerHTML().contains("haha")

我试着用String x = userAgent.doc.innerHTML();并在下一行使用条件,但仍然是:Caused by: java.lang.NullPointerException: 试图在一个空对象引用上调用虚拟方法'java.lang.String com.jaunt.Document.innerHTML()'。

请大家知道我做错了什么吗?

围观的代码。

private class AT extends AsyncTask<Void, Void, Void> {
        @Override
        protected Void doInBackground(Void... voids) {
            UserAgent userAgent = new UserAgent();
            toSearch += 50;
            while (visited.size() < toSearch) {
                try {
                    userAgent.visit(currentUrl);
                    Elements elements = userAgent.doc.findEvery("<a href>");
                    for (Element e : elements) {
                        String url = e.getAt("href");
                        if (!toVisit.contains(url) && !visited.contains(url) && url.contains(stayAt))
                            toVisit.add(url);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                visited.add(currentUrl);
                if(userAgent.doc.innerHTML().contains(key))
                    recipes.add(currentUrl);
                toVisit.remove(0);
                currentUrl = toVisit.get(0);
            }
            return null;
        }
    }

非常感谢你的建议! :)

java android android-studio nullpointerexception jaunt-api
1个回答
0
投票

doc 对象 userAgent 是空的。

添加空检查验证 userAgent.doc != null 当你试图添加 currentUrlrecipes :

 protected Void doInBackground(Void... voids) {
        UserAgent userAgent = new UserAgent();
        toSearch += 50;
        while (visited.size() < toSearch) {
            try {
                userAgent.visit(currentUrl);
                Elements elements = userAgent.doc.findEvery("<a href>");
                for (Element e : elements) {
                    String url = e.getAt("href");
                    if (!toVisit.contains(url) && !visited.contains(url) && url.contains(stayAt))
                        toVisit.add(url);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            visited.add(currentUrl);
            if(userAgent.doc != null && userAgent.doc.innerHTML().contains(key))
                recipes.add(currentUrl);
            toVisit.remove(0);
            currentUrl = toVisit.get(0);
        }
        return null;
    }
© www.soinside.com 2019 - 2024. All rights reserved.