代码之家  ›  专栏  ›  技术社区  ›  SimpleJ

尽管已初始化,但Firebase仍引发未初始化错误

  •  1
  • SimpleJ  · 技术社区  · 6 年前

    我正在尝试在Android应用程序中设置firebase消息,据我所知,我需要运行 FirebaseApp.initializeApp(context) 在我处理firebase类之前。我的问题是我在跑步 initializeApp FirebaseInstanceId.getInstance().getInstanceId() ,但firebase仍引发此错误:

    09-05 11:16:20.314 24640-24640/com.company.AppName E/AndroidRuntime: FATAL EXCEPTION: main
        Process: com.company.AppName, PID: 24640
        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.company.AppName/com.company.AppName.MainActivity}: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.company.AppName. Make sure to call FirebaseApp.initializeApp(Context) first.
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
            at android.app.ActivityThread.-wrap11(Unknown Source:0)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
            at android.os.Handler.dispatchMessage(Handler.java:106)
            at android.os.Looper.loop(Looper.java:164)
            at android.app.ActivityThread.main(ActivityThread.java:6494)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
         Caused by: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.company.AppName. Make sure to call FirebaseApp.initializeApp(Context) first.
            at com.google.firebase.FirebaseApp.getInstance(com.google.firebase:firebase-common@@16.0.1:219)
            at com.google.firebase.iid.FirebaseInstanceId.getInstance(Unknown Source:1)
            at com.company.AppName.MainActivity.onCreate(MainActivity.java:48)
            at android.app.Activity.performCreate(Activity.java:7009)
            at android.app.Activity.performCreate(Activity.java:7000)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
    

    下面是初始化firebase并抛出错误的代码(在 MainActivity.java onCreate

    FirebaseApp.initializeApp(this);
    NativeApp
        .shared()
        .setContext(this)
        .setDeviceToken(FirebaseInstanceId.getInstance().getInstanceId().toString());
    

    如果我把这句话注释掉 setDeviceToken 行,不会抛出错误。是 初始化PP Firebase Android setup guide 甚至不提 初始化PP

    1 回复  |  直到 6 年前
        1
  •  1
  •   Doug Stevenson    6 年前

    如果使用与Firebase进行集成,则不需要调用initializeApp documented procedure API docs for FirebaseApp .

    如果您没有执行标准的集成,那么就由您在合适的时间为您的用例调用initializeApp。