我的应用程序在以下行偶尔报告NullPointerException:
MyApplication.myAppInstance.updateDay();
,据我了解myAppInstance为空。在应用程序的主要活动之一的onStart()
方法的super.onStart()
下方调用上述行
在应用程序类中,我有:
public static MyApplication myAppInstance;
public MyApplication() {
myAppInstance = this;
}
这是将变量写入代码的唯一位置。
崩溃仅发生在Android 9上。
是什么原因造成的?该应用有点假设该应用实例将始终可用。
我应该注意,此崩溃仅出现在Play控制台中,而不出现在Crashlytics中。
java.lang.RuntimeException:
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3194)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3302)
at android.app.ActivityThread.-wrap12 (Unknown Source)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1891)
at android.os.Handler.dispatchMessage (Handler.java:108)
at android.os.Looper.loop (Looper.java:166)
at android.app.ActivityThread.main (ActivityThread.java:7425)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:245)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:921)
Caused by: java.lang.NullPointerException:
at com.timSim.myScheduler.MainActivity.onStart (MainActivity.java:667)
at android.app.Instrumentation.callActivityOnStart (Instrumentation.java:1339)
at android.app.Activity.performStart (Activity.java:7392)
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3157)
这种情况很少发生,所以我无法复制。
答案 0 :(得分:0)
使用Application
类。您需要在manifests.xml
中声明它。
尝试一下:
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:name=".MyApplication"
.../>
还有
class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// TODO:
}
}