FirebaseApp名称为[DEFAULT]的不存在。

7 浏览
0 Comments

FirebaseApp名称为[DEFAULT]的不存在。

迁移到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());
}
}

admin 更改状态以发布 2023年5月24日
0
0 Comments

不确定是否相关,但是还有一个情况会导致崩溃。


如果你的应用程序有一个服务(使用不同的进程),并且你正在创建自己的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);

0