尽管关注点与null有些相关,因为ownText()返回null,但是可以处理主要问题是使用的方法不够好我正在检查div[itemprop=softwareVersion
。我已经更改了版本检查下面给出的答案,这只是在playstore上检查softwareVersion的版本。
原始问题 我有一个真正的应用程序,几天前工作正常,现在有一个问题,当用户从Play商店或从应用程序抽屉或主屏幕快捷方式打开应用程序时.app正在随机崩溃并且1/5正在启动好的
以下是版本检查器代码
build.gradle(app level)
compile 'org.jsoup:jsoup:1.8.3'
java代码:
public class VersionChecker extends AsyncTask<String, String, String> {
String newVersion;
Context context;
public VersionChecker(Context context) {
this.context = context;
}
@Override
protected String doInBackground(String... params) {
try {
newVersion = Jsoup.connect("https://play.google.com/store /apps/details?id=" + context.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();
} catch (IOException e) {
e.printStackTrace();
}
return newVersion;
} }
及以下是异常追踪
例外: 致命异常:主要进程:com.demo.android.myapp,PID:5325 java.lang.RuntimeException:无法恢复活动 {com.demo.android.myapp / com.demo.android.myapp.SplashActivity}: java.lang.NullPointerException:尝试调用虚方法 'boolean java.lang.String.equalsIgnoreCase(java.lang.String)'上的一个 null对象引用 android.app.ActivityThread.performResumeActivity(ActivityThread.java:3103) 在 android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3134) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2481) 在android.app.ActivityThread.-wrap11(ActivityThread.java)处 android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344) 在android.os.Handler.dispatchMessage(Handler.java:102)at android.os.Looper.loop(Looper.java:148)at android.app.ActivityThread.main(ActivityThread.java:5417)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)引起 by:java.lang.NullPointerException:尝试调用虚方法 'boolean java.lang.String.equalsIgnoreCase(java.lang.String)'上的一个 null对象引用 com.demo.android.myapp.SplashActivity.checkVersion(SplashActivity.java:81) 在 com.demo.android.myapp.SplashActivity.onResume(SplashActivity.java:242) 在 android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1258) 在android.app.Activity.performResume(Activity.java:6327)处 android.app.ActivityThread.performResumeActivity(ActivityThread.java:3092) 在 android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3134) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2481) 在android.app.ActivityThread.-wrap11(ActivityThread.java)处 android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344) 在android.os.Handler.dispatchMessage(Handler.java:102)at android.os.Looper.loop(Looper.java:148)at android.app.ActivityThread.main(ActivityThread.java:5417)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
答案 0 :(得分:0)
我遇到了同样的问题,发现解决方案对我来说很好:
build.gradle(app level)
system("bash x")
java代码:
compile 'com.squareup.okhttp:okhttp:2.5.0'