I am using below code to get versionName from Google play store by using Jsoup for fetching details but its throwing some exception, But recently it was working fine. I don't know what happen now?
My code is -
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;
}
}
Note - In above code the select() returns size 0 and when i call first() it will return null and that's why getting null pointer exception.
Note - I don't have any idea why it was working recently why not working now?
Here is the link I tried and this but no solution.
This library version I am using now -
compile 'org.jsoup:jsoup:1.8.3'
But I tried latest one too -
compile 'org.jsoup:jsoup:1.11.3'
Below is exact error I am getting -
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)