私はFirebaseをリモートコンフィグレーションのアンドロイドアプリケーションで使用しています。私は、アプリケーションを実行するとFirebase + RoboElectric:java.lang.IllegalStateException:名前が[DEFAULT]のFirebaseAppが存在しません
apply plugin: 'com.google.gms.google-services'
:以下は私のアプリケーションクラスのonCreate方法で行わ初期化さ:thisあたりにも、私のbuild.gradle
ファイルを答えとして
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);
は、その中に以下の行を持っていますそれは正常に動作しますが、私がRoboelectricテストケースを実行しようとすると、次の例外が発生してクラッシュします。
java.lang.IllegalStateException:名前が[DEFAULT]のFirebaseAppが存在しません。 COMでcom.google.firebase.FirebaseApp.getInstance(不明なソース)com.google.firebase.FirebaseApp.getInstanceで (不明なソース)com.google.firebase.remoteconfig.FirebaseRemoteConfig.getInstanceで (不明なソース) で .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:org.robolectric.RobolectricTestRunner.ruでorg.robolectric.RobolectricTestRunner $ 2.evaluateでorg.robolectric.RobolectricTestRunner.setUpApplicationState(RobolectricTestRunner.java:433) における140) (RobolectricTestRunner.java:240) org.junit.runnersでorg.junit.runners.ParentRunner $ 3.run(ParentRunner.java:290) でorg.robolectric.RobolectricTestRunner.runChild(RobolectricTestRunner.java:54) でnChild(RobolectricTestRunner.java:188) .ParentRunner $ 1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access $ 000(ParentRunner.java:58) org.junit.runners.ParentRunnerで$ 2.evaluate(ParentRunner.java:268) でorg.robolectric.RobolectricTestRunner $ 1.evaluate(RobolectricTestRunner.java:152) でorg.junit.runners.ParentRunner.run(ParentRunner.java :363) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) com.intellij.rt.execution.junitでcom.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)でcom.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) でsun.reflect.DelegatingMethodAccessorImpl.invokeでsun.reflect.NativeMethodAccessorImpl.invokeでsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) (NativeMethodAccessorImpl.java:62) (AT .JUnitStarter.main(JUnitStarter.java:74) com.intellij.rt.execution.application.AppMain.mainでjava.lang.reflect.Method.invoke(Method.java:498) でDelegatingMethodAccessorImpl.java:43) (AppMain.java:144)
このテストはFirebaseとは関係ありません。 FirebaseコードをonCreate
にコメントアウトすると、テストはうまく動作します。私はFirebaseの初期設定で何か不足していると思います。