【问题标题】:Firebase Analytics - NPE in CrashReportFirebase 分析 - 崩溃报告中的 NPE
【发布时间】:2016-05-23 13:48:35
【问题描述】:

我刚刚迁移到 Firebase Analytics 9.0.0,当尝试在模拟器 api10/x86 上启动应用程序时,服务会引发以下异常。任何想法如何解决这个问题?

05-23 15:36:44.371 1280-1280/? E/AndroidRuntime:致命异常:主要 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.szyk.myheart/com.szyk.myheart.MyHeartActivity}:java.lang.NullPointerException 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 在 android.app.ActivityThread.access$1500(ActivityThread.java:117) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:130) 在 android.app.ActivityThread.main(ActivityThread.java:3683) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:507) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 在 dalvik.system.NativeStart.main(本机方法) 引起:java.lang.NullPointerException 在 com.google.android.gms.flags.impl.FlagProviderImpl.getBooleanFlagValue(未知来源) 在 com.google.android.gms.internal.zzsd$zza.zzb(未知来源) 在 com.google.android.gms.internal.zzsd$zza.zza(未知来源) 在 com.google.android.gms.internal.zzsf.zzb(未知来源) 在 com.google.android.gms.internal.zzsd.get(未知来源) 在 com.google.firebase.crash.FirebaseCrash.getInstance(未知来源) 在 com.google.firebase.crash.FirebaseCrash.zzOW(未知来源) 在 com.google.firebase.crash.FirebaseCrash.log(未知来源) 在 com.szyk.extras.activities.UniversalActionBarActivity.onCreate(UniversalActionBarActivity.java:46) 在 com.szyk.myheart.MyHeartActivity.onCreate(MyHeartActivity.java:99) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 在 android.app.ActivityThread.access$1500(ActivityThread.java:117) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:130) 在 android.app.ActivityThread.main(ActivityThread.java:3683) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:507) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 在 dalvik.system.NativeStart.main(本机方法)

代码只不过是活动:

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

【问题讨论】:

  • 这看起来像是 Firebase 崩溃报告中的崩溃。您是否还集成了 firebase-crash 报告?
  • 谢谢夏洛克。是的,我做到了:)
  • Szymon,您是否在没有 Google API 的模拟器上运行该应用程序? (又名非播放设备)?
  • 我正在使用没有 Google API 的模拟器,但是我通过使用捕获异常的日志代理装饰 FirebaseCrash 来解决该问题。来自新的 firebase api 的其他一切似乎都可以正常工作,例如身份验证等。
  • 您能否在播放设备上重现崩溃(例如使用 Google API 的枚举器图像)?

标签: android firebase firebase-analytics firebase-crash-reporting


【解决方案1】:

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

听起来你正在尽你所能抑制异常,但我不想让你经历那个,所以我会将它作为反馈传递给团队。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 是的,但它们不应该崩溃。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多