Я использую Firebase в нашем приложении для Android для удаленной конфигурации. Ниже инициализации сделано в моем классе приложений OnCreate метод:Firebase + RoboElectric: java.lang.IllegalStateException: FirebaseApp с именем [DEFAULT] не существует
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);
По this ответ мой build.gradle
файл имеет следующую строку в ней:
apply plugin: 'com.google.gms.google-services'
При запуске приложения он работает нормально, но когда я пытаюсь запустить свой тест Roboelectric, он выходит из строя со следующим исключением:
java.lang.IllegalStateException: FirebaseApp с именем [DEFAULT] не существует. в com.google.firebase.FirebaseApp.getInstance (Unknown Source) в com.google.firebase.FirebaseApp.getInstance (Unknown Source) в com.google.firebase.remoteconfig.FirebaseRemoteConfig.getInstance (Unknown Source) на ком .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) в org.robolectric.RobolectricTestRunner.setUpApplicationState (RobolectricTestRunner.java:433) в org.robolectric.RobolectricTestRunner $ 2.evaluate (RobolectricTestRunner.java:240) в org.robolectric.RobolectricTestRunner.ru nChild (RobolectricTestRunner.java:188) в org.robolectric.RobolectricTestRunner.runChild (RobolectricTestRunner.java:54) в org.junit.runners.ParentRunner $ 3.run (ParentRunner.java:290) в org.junit.runners .ParentRunner $ 1.schedule (ParentRunner.java:71) на org.junit.runners.ParentRunner.runChildren (ParentRunner.java:288) в org.junit.runners.ParentRunner.access $ 000 (ParentRunner.java:58) at org.junit.runners.ParentRunner $ 2.оценить (ParentRunner.java:268) at org.robolectric.RobolectricTestRunner $ 1. оценить (RobolectricTestRunner.java:152) на org.junit.runners.ParentRunner.run (ParentRunner.java : 363) на org.junit.runner.JUnitCore.run (JUnitCore.java:137) на com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs (JUnit4IdeaTestRunner.java:69) в com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart (JUnitStarter.java:234) в com.intellij.rt.execution.junit .JUnitStarter.main (JUnitStarter.java:74) на sun.reflect.NativeMethodAccessorImpl.invoke0 (нативный метод) на sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) на java.lang.reflect.Method.invoke (Method.java:498) на com.intellij.rt.execution.application.AppMain.main (AppMain.java:144)
Тест не имеет ничего общего с Firebase. Если я прокомментирую код Firebase в onCreate
, тест пройдет нормально. Я думаю, что у меня что-то отсутствует в моей инициализации Firebase