名称为[DEFAULT]的FirebaseApp不存在

迁移到Firebase Cloud Messaging之后。打开我的应用程序时,它崩溃并引发错误,说java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist.我已经放置了新的google-services.json并更新了我的SDK。


这是我的MainActivity


public class MainActivity extends Activity {


@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);


//Check Google play service

    GoogleApiAvailability googleAPI = GoogleApiAvailability.getInstance();

    int resultCode = googleAPI.isGooglePlayServicesAvailable(this);


    if (resultCode != ConnectionResult.SUCCESS) {

        if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) {

            GooglePlayServicesUtil.getErrorDialog(resultCode, this,

                    PLAY_SERVICES_RESOLUTION_REQUEST).show();

        } else {

            Log.e(LOG_TAG, "This device is not supported.");

            finish();

        }

    }


    Log.i(TAG, "InstanceID token: " + FirebaseInstanceId.getInstance().getToken());


}

}


叮当猫咪
浏览 1095回答 3
3回答

守着星空守着你

不确定是否与此处相关。但是在另一种情况下,可能发生崩溃。如果您的应用程序具有服务(具有不同的过程),并且您正在创建自己的Application类,则该服务和前台应用程序将使用相同的Application类(不是同一实例)进行初始化。现在,当我使用com.google.firebase:firebase-crash依赖关系来处理崩溃时,它将创建一个后台服务your.app.packagename:background_crash。由于某种原因,这导致我的应用程序崩溃。具体来说,因为在我的Application类中,我像这样打电话,FirebaseDatabase.getInstance().setPersistenceEnabled(true);我假设,在使用我们的Application类初始化时,后台服务以某种方式未初始化Firebase。为了解决这个问题,我做了if (!FirebaseApp.getApps(this).isEmpty())        FirebaseDatabase.getInstance().setPersistenceEnabled(true);

慕尼黑的夜晚无繁华

我遇到过类似的问题,对我来说,这是清单合并的错误/问题。我发现FirebaseInitProvider由于tools:node="replace"我的应用程序清单文件中的内容尚未注入最终清单文件中。因此,请尝试删除此xml标记FirebaseInitProvider并将其注入,然后可以正确初始化Firebase。
打开App,查看更多内容
随时随地看视频慕课网APP