Firebase + RoboElectric:java.lang.IllegalStateException:名称为 [DEFAULT] 的 FirebaseApp 不存在

Abd*_*lah 5 android robolectric firebase

我在我们的 android 应用程序中使用Firebase进行远程配置。下面是在我的应用程序类onCreate方法中完成的初始化

    FirebaseRemoteConfig remoteConfig = FirebaseRemoteConfig.getInstance();
    FirebaseRemoteConfigSettings settings = new FirebaseRemoteConfigSettings.Builder()
                .setDeveloperModeEnabled(BuildConfig.DEBUG)
                .build();
    remoteConfig.setConfigSettings(settings);
    setFirebaseDefault();

    Map<String, Object> defaults = new HashMap<>();
    defaults.put(FirebaseConstantsKt.BREAKING_NEWS, "");
    defaults.put(FirebaseConstantsKt.ENABLE_BREAKING_NEWS, false);
    FirebaseRemoteConfig.getInstance().setDefaults(defaults);
Run Code Online (Sandbox Code Playgroud)

根据这个答案,我的build.gradle文件中还有以下行:

apply plugin: 'com.google.gms.google-services'  
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,它工作正常,但是当我尝试运行我的 Roboelectric 测试用例时,它崩溃并出现以下异常:

java.lang.IllegalStateException:名称为 [DEFAULT] 的 FirebaseApp 不存在。在 com.google.firebase.FirebaseApp.getInstance(Unknown Source) 在 com.google.firebase.FirebaseApp.getInstance(Unknown Source) 在 com.google.firebase.remoteconfig.FirebaseRemoteConfig.getInstance(Unknown Source) 在 com.woi.apppackage .android.MyApplication.initFirebase(MyApplication.java:225) at com.woi.apppackage.android.MyApplication.onCreate(MyApplication.java:107) at org.robolectric.internal.ParallelUniverse.setUpApplicationState(ParallelUniverse.java:140) at org.robolectric.RobolectricTestRunner.setUpApplicationState(RobolectricTestRunner.java:433) 在 org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:240) 在 org。

该测试与 Firebase 无关。如果我在onCreate测试中注释掉 Firebase 代码运行良好。我想我在 Firebase 的初始化中遗漏了一些东西

shi*_*poo 0

我认为 Firebase 存在一个在应用程序级别调用的错误。我对 Firebase 数据库也有同样的问题,并通过将我的 Firebase 代码移动到我的活动类(在我的例子中是 SplashScreen)中解决了这个问题。

我建议尝试做同样的事情。:)