我正在使用以下代码获取
版本名称
从Google play store中,使用Jsoup获取详细信息,但它引发了一些异常,但最近它运行良好。我不知道现在发生了什么?
我的代码是-
public class VersionChecker extends AsyncTask<String, String, String> {
private String newVersion;
@Override
protected String doInBackground(String... params) {
try {
newVersion = Jsoup.connect("https://play.google.com/store/apps/details?id=" + ParkwayApplication.getInstance().getPackageName() + "&hl=en")
.timeout(30000)
.userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
.referrer("http://www.google.com")
.get()
.select("div[itemprop=softwareVersion]")
.first()
.ownText();
Log.d("otherhtml", newVersion);
} catch (IOException e) {
e.printStackTrace();
}
return newVersion;
}
}
注-在上述代码中
选择()
返回大小0,当我调用时
第一个()
它将返回null,这就是为什么会出现null指针异常。
注意-我不知道为什么它最近在工作为什么现在不工作?
这是链接I
tried
和
this
但没有解决方案。
我现在使用的库版本-
compile 'org.jsoup:jsoup:1.8.3'
但我也试过最新的-
compile 'org.jsoup:jsoup:1.11.3'
下面是我得到的确切错误-
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method
'java.lang.String org.jsoup.nodes.Element.ownText()' on a null object reference
at com.ranosys.parkway.utils.VersionChecker.doInBackground(VersionChecker.java:31)
at com.ranosys.parkway.utils.VersionChecker.doInBackground(VersionChecker.java:16)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)Â
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)Â
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)Â
at java.lang.Thread.run(Thread.java:818)Â