FirebaseApp名称为[DEFAULT]的不存在。
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日
不确定是否相关,但是还有一个情况会导致崩溃。
如果你的应用程序有一个服务(使用不同的进程),并且你正在创建自己的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);