【发布时间】:2020-05-07 08:20:10
【问题描述】:
抱歉扩展 NullPointerException 泛滥:D
我已经阅读了大量关于 NullPointerException 的问题,但我无法弄清楚我的代码中的问题所在。
问题线:
if(userAgent.doc.innerHTML().contains("haha")
我试过 String x = userAgent.doc.innerHTML();并在下一行使用条件,但仍然存在:原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'java.lang.String com.jaunt.Document.innerHTML()' /p>
请知道我做错了什么吗?
周边代码:
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;
}
}
非常感谢您的建议! :)
【问题讨论】:
-
你能分享一下堆栈跟踪吗
-
您是否通过读取堆栈跟踪检查了 NPE 在哪里?您是否尝试过使用调试器?
-
欢迎来到 Stackoverflow。你试过调试你的代码吗?这通常是发现代码中错误的好方法。此外,您应该提及您尝试解决此错误的原因。
-
userAgent.doc 为空
-
我猜
userAgent.visit(currentUrl);会抛出一个ResponseException,你会发现它好像什么都没发生一样。您需要找出失败的原因。currentUrl有问题吗?您的应用程序的互联网权限有问题吗?也许您正在尝试访问 HTTP URL 而不是 HTTPS,并且默认情况下最近的 Android 版本拒绝这样做?
标签: java android android-studio nullpointerexception jaunt-api