Firebase Analytics - CrashReport 中的 NPE

Firebase Analytics - NPE in CrashReport

我刚刚迁移到 Firebase Analytics 9.0.0,当我尝试在模拟器 api10/x86 上启动应用程序时,服务会抛出以下异常。有什么解决办法吗?

05-23 15:36:44.371 1280-1280/? E/AndroidRuntime: FATAL EXCEPTION: main
 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.szyk.myheart/com.szyk.myheart.MyHeartActivity}: java.lang.NullPointerException
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
     at android.app.ActivityThread.access00(ActivityThread.java:117)
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
     at android.os.Handler.dispatchMessage(Handler.java:99)
     at android.os.Looper.loop(Looper.java:130)
     at android.app.ActivityThread.main(ActivityThread.java:3683)
     at java.lang.reflect.Method.invokeNative(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:507)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
     at dalvik.system.NativeStart.main(Native Method)
  Caused by: java.lang.NullPointerException
     at com.google.android.gms.flags.impl.FlagProviderImpl.getBooleanFlagValue(Unknown Source)
     at com.google.android.gms.internal.zzsd$zza.zzb(Unknown Source)
     at com.google.android.gms.internal.zzsd$zza.zza(Unknown Source)
     at com.google.android.gms.internal.zzsf.zzb(Unknown Source)
     at com.google.android.gms.internal.zzsd.get(Unknown Source)
     at com.google.firebase.crash.FirebaseCrash.getInstance(Unknown Source)
     at com.google.firebase.crash.FirebaseCrash.zzOW(Unknown Source)
     at com.google.firebase.crash.FirebaseCrash.log(Unknown Source)
     at com.szyk.extras.activities.UniversalActionBarActivity.onCreate(UniversalActionBarActivity.java:46)
     at com.szyk.myheart.MyHeartActivity.onCreate(MyHeartActivity.java:99)
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
     at android.app.ActivityThread.access00(ActivityThread.java:117) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:130) 
     at android.app.ActivityThread.main(ActivityThread.java:3683) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:507) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
     at dalvik.system.NativeStart.main(Native Method) 

代码无非就是activity和:

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FirebaseCrash.log("onCreate: " + getClass().getSimpleName());
}

遗憾的是,在没有 Play 服务的设备或模拟器上使用 Firebase 不受支持。崩溃报告将无法初始化,当应用程序启动时,您会在 logcat 中看到一条消息。但是,如果您在初始化失败后调用方法时也看到崩溃,这似乎是我们应该纠正的问题。

听起来您通过抑制异常已尽力而为,但我不想让您经历这些,因此我会将其作为反馈传递给团队。

只是对 Doug 提到的内容进行了小幅更正。非播放设备不支持 Firebase 崩溃报告。特别是 Firebase Analytics 和其他一些 Firebase 产品确实支持非播放设备。