这是我在尝试使用 FirebaseAuth 和 Firebase 崩溃报告时遇到的异常。我正在尝试在我的应用程序 onCreate
public class MainApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
firebaseAuth.signInAnonymously().addOnCompleteListener(task -> {
if (task.isSuccessful()) {
Log.wtf("TAG", "Signed signInAnonymously successful ");
}
});
}
}
我还想使用崩溃报告,所以我的 gradle 依赖项看起来像这样。
dependencies {
// other dependencies
// ...
compile 'com.google.firebase:firebase-core:9.2.1'
compile 'com.google.firebase:firebase-storage:9.2.1'
compile 'com.google.firebase:firebase-auth:9.2.1'
compile 'com.google.firebase:firebase-config:9.2.1'
compile 'com.google.firebase:firebase-crash:9.2.1'
}
apply plugin: 'com.google.gms.google-services'
一定时间后我会得到一个崩溃对话框和这个异常。这是另一个崩溃的进程,因此应用程序本身仍会运行。
java.lang.RuntimeException: Unable to create application com.android.tools.fd.runtime.BootstrapApplication: java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist.
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4612)
at android.app.ActivityThread.access$1600(ActivityThread.java:169)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1337)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5476)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist.
at com.google.firebase.FirebaseApp.getInstance(Unknown Source)
at com.google.firebase.FirebaseApp.getInstance(Unknown Source)
at com.google.firebase.auth.FirebaseAuth.getInstance(Unknown Source)
at com.redstar.collectors.MainApplication.onCreate(MainApplication.java:22)
at com.android.tools.fd.runtime.BootstrapApplication.onCreate(BootstrapApplication.java:369)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4609)
at android.app.ActivityThread.access$1600(ActivityThread.java:169)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1337)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5476)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(Native Method)
如果我删除 firebase-crash 依赖项,就不会发生崩溃。
最佳答案
FirebaseApp with name [DEFAULT] doesn't exist
是当您在由 Firebase 崩溃报告创建的单独进程上运行 Firebase 代码作为您的自定义 Application
类时引起的是为您应用中的每个进程创建的。
您应该将代码从您的 Application
类移动到其他地方。这可能在您的主要 Activity 中(它始终在您的主要流程中),或者可能在您在 list 中注册的单独 ContentProvider
的 onCreate()
中(a ContentProvider
的 onCreate()
在应用进程的生命周期中运行一次,就像 Application.onCreate()
一样,但只在一个单一进程)。
关于android - Firebase 崩溃报告 : FirebaseApp with name [DEFAULT] doesn't exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38365225/