1

我正在使用 Firebase 崩溃报告和 Firebase 远程配置。两者的版本都是 9.8.0。

在大多数设备上,设置都可以完美运行(我遵循了设置崩溃报告)。但是在一小部分设备上(实际上是发生率最高的崩溃),当我尝试在 Application onCreate 方法中初始化远程配置时它会崩溃。

java.lang.RuntimeException: Unable to create application com.company.application.AppApplication: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.company.application. Make sure to call FirebaseApp.initializeApp(Context) first.
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6429)
    at android.app.ActivityThread.access$1800(ActivityThread.java:229)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1887)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:7329)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.company.application. Make sure to call FirebaseApp.initializeApp(Context) first.
    at com.google.firebase.a.d(Unknown Source)
    at com.google.firebase.b.a.a(Unknown Source)
    at com.company.application.d.a.a(SourceFile:21)
    at com.company.application.AppApplication.onCreate(SourceFile:76)
    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1037)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6426)
    ... 8 more
4

2 回答 2

4

在 10.0.0 版本之前,Firebase Crash 在您的应用中创建了一个名为background_crash. AppApplication为您的应用程序中的每个进程创建并执行您的类的实例,包括background_crash.

如果要在应用程序类中执行 Firebase 服务的初始化,则需要添加一个守卫以防止在 background_crash 中执行初始化。这样做的方法是:

    if (!FirebaseApp.getApps(this).isEmpty()) {
        // Not in crash process.  Do your Remote Config init here.
    }

另一种解决方案是升级到最新版本的 Firebase,10.0.1。

假设这个答案是有效的,我无法解释为什么故障只发生在某些设备上,除非设备上安装的 Google Play 服务版本是一个因素,并且故障设备的版本较旧。

于 2017-01-09T20:46:10.453 回答
0
  1. 'com.google.gms:google-services:4.0.1'在依赖项中设置类路径。
  2. 实现 androidTestImplementation 依赖项:

    androidTestImplementation('com.android.support.test.espresso:espresso-core:.2.2',
    

    {排除组:'com.android.support',模块:'support-annotations'})

于 2019-02-09T08:32:33.180 回答