我已经实现了代码来获取我的应用在Play商店中的当前版本,这样我就可以建议用户在Play商店中有任何新版本时升级应用程序。 这段代码以前运行得很好,但现在不起作用。
我使用的获取当前应用版本的代码如下:
newVersion = Jsoup.connect(
"https://play.google.com/store/apps/details?id=" +
"<app package name>" + "&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();
看起来Google Play商店网页已经更新了,我找不到任何具有itemprops=softwareVersion的div。我已经检查了我的应用程序在Google Play商店网页上的源代码,但它也没有显示当前应用程序版本。
我收到的异常是:
Process: com.srsvalutech.theparkking, PID: 25357
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:300)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
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.srsvalutech.theparkking.view.SplashScreenActivity$GetAppCurrentVersionAsyncTask.doInBackground(SplashScreenActivity.java:124)
at com.srsvalutech.theparkking.view.SplashScreenActivity$GetAppCurrentVersionAsyncTask.doInBackground(SplashScreenActivity.java:102)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)