名称为[DEFAULT]的FirebaseApp不存在

nat*_*iyu 71 java android firebase

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

}
}
Run Code Online (Sandbox Code Playgroud)

小智 78

你补充说,请仔细检查

apply plugin: 'com.google.gms.google-services' 
Run Code Online (Sandbox Code Playgroud)

在应用程序的gradle文件的底部,然后清理并重建项目


Cod*_*ley 21

不确定,如果它在这里是相关的.但是还有另一种情况可能发生这种崩溃.


如果您的应用程序具有服务(具有不同的进程)并且您正在创建自己的Application类,则该服务和前台应用程序将使用相同的Application类(不是相同的实例)进行初始化.现在,当我使用com.google.firebase:firebase-crash依赖来处理崩溃时,它会创建一个后台服务your.app.packagename:background_crash.由于某种原因,这导致我的应用程序崩溃.具体来说,因为在我的Application类中,我正在打电话,

FirebaseDatabase.getInstance().setPersistenceEnabled(true);
Run Code Online (Sandbox Code Playgroud)

我假设,使用我们的Application类启动时的后台服务,不知何故Firebase未初始化.为了解决这个问题,我做到了

if (!FirebaseApp.getApps(this).isEmpty())
        FirebaseDatabase.getInstance().setPersistenceEnabled(true);
Run Code Online (Sandbox Code Playgroud)


小智 12

我有类似的问题,对我来说这是一个明显合并的错误/问题.我发现FirebaseInitProvider由于tools:node="replace"我的应用程序的清单文件中没有注入到最终清单文件中.因此,尝试删除此xml标记并FirebaseInitProvider注入,Firebase可以正确初始化.


小智 10

build.gradle文件:

buildscript {
    repositories {
        jcenter()
        mavenLocal()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2'
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
        mavenLocal()
    }
}
Run Code Online (Sandbox Code Playgroud)

\ app\build.gradle文件:

apply plugin: 'com.android.application'

android {
    ..
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    ..
    compile 'com.google.firebase:firebase-core:9.0.2'
    compile 'com.google.firebase:firebase-messaging:9.0.2'
}

apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)


小智 10

@jmodrako的答案解决了我的问题...... tools:node="replace"tools:node="merge"

在AndroidManifest.xml上解释....

<application
...
tools:node="replace">
Run Code Online (Sandbox Code Playgroud)

<application
...
tools:node="merge">
Run Code Online (Sandbox Code Playgroud)

合并图书馆主题的问题? 构建问题解决了使用tools:replace="android:theme"

致积于/sf/answers/2664219071/