FirebaseApp with name [DEFAULT] doesn't exist

JavaAndroidFirebase

Java Problem Overview


After migrating to Firebase Cloud Messaging.When opening my app it crashes and throws an error saying java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist. I already put my new google-services.json and update my SDK.

Here's my 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());

}
}

Java Solutions


Solution 1 - Java

Please do double check, you added

apply plugin: 'com.google.gms.google-services' 

at the bottom of app's gradle file and then clean and rebuild the project

Solution 2 - Java

Not sure, if it is relevant here. But there is another scenario when this crash can happen.


If your app has a service (with different process) and you're creating your own Application class, the service and the foreground app will use the same Application class (not same instance) to initialize. Now when I am using com.google.firebase:firebase-crash dependancy to handle crashes, it creates a background service your.app.packagename:background_crash. For some reason, this was inducing crashes on my app. Specifically, because in my Application class, I was making a call like,

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

I am assuming, the background service when initing with our Application class, somehow Firebase is not initialized. To fix this, I did

if (!FirebaseApp.getApps(this).isEmpty())
        FirebaseDatabase.getInstance().setPersistenceEnabled(true);

Solution 3 - Java

I've had similar problem, and for me it was a bug/problem with manifest merger. I've found out that FirebaseInitProvider has not been injected into final manifest file because of tools:node="replace" in my app's manifest file. So, try to remove this xml tag and FirebaseInitProvider will be injected and Firebase can be initialized properly.

Solution 4 - Java

build.gradle file:

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()
    }
}

\app\build.gradle file:

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'

Solution 5 - Java

@jmodrako answer solved my problem... tools:node="replace" to tools:node="merge"

Explained... on AndroidManifest.xml

From

<application
...
tools:node="replace">

To

<application
...
tools:node="merge">

Merge problems with library themes? Build problems solved using tools:replace="android:theme"

Credits to https://stackoverflow.com/a/38060272/2765087

Solution 6 - Java

Move your firebase initialization inside the onCreate of Application class. Also if you have enabled offline persistence, FirebaseDatabase.getInstance().setPersistenceEnabled(true) should come before any other initializations.

Solution 7 - Java

Verify all configurations as below:

1-firebase project setting: google-services.json is correct? enter image description here

2- add firebase SDK enter image description here

3- clean - rebuild your project

hopefully, this helps!

Solution 8 - Java

Add the following line to app/build.gradle

apply plugin: 'com.google.gms.google-services'  // Google Services plugin

And the following line to project build.gradle

classpath 'com.google.gms:google-services:4.3.3'

Solution 9 - Java

Android Studio

  1. apply plugin: 'com.google.gms.google-services' (build.gradle - Module layer)
  2. Menu~>Build~>CleanProject

Works for me ok.

Solution 10 - Java

In your dependency just add:

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'

Solution 11 - Java

Register your application in Firebase and copy the google-services.json to your root project.

Apply classpath 'com.google.gms:google-services:3.1.0 to you root build.gradle.

Apply apply plugin: 'com.google.gms.google-services to your project gradle.

Solution 12 - Java

Change the Build Action (GoogleServicesJson) to the File Name Google-Services.Json.

Solution 13 - Java

In my case I was not initializing Firebase on app startup, I had to do the following to resolve it

@Service
public class FirebaseSetup implements CommandLineRunner {
	public void run(String... args) throws Exception {
		initializeFirebase();
	}
	private void initializeFirebase() throws FileNotFoundException, IOException {
		FileInputStream serviceAccount = new FileInputStream(ResourceUtils.getFile("classpath:ssf1-v1-firebase-adminsdk-zr72u-afcb5bc13b.json"));
		FirebaseOptions options = new FirebaseOptions.Builder().setCredentials(GoogleCredentials.fromStream(serviceAccount)).build();
		FirebaseApp.initializeApp(options);
	}
}

Solution 14 - Java

Add classpath 'com.google.gms:google-services:3.0.0' to build.gradle

dependencies {
     	..
        classpath 'com.google.gms:google-services:3.0.0'
    }

Add this at the end of the app\build.gradle

apply plugin: 'com.google.gms.google-services'

This worked for me

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionnatsumiyuView Question on Stackoverflow
Solution 1 - JavaVenkatesanView Answer on Stackoverflow
Solution 2 - JavaCodevalleyView Answer on Stackoverflow
Solution 3 - JavajmodrakoView Answer on Stackoverflow
Solution 4 - JavaElronView Answer on Stackoverflow
Solution 5 - JavaCarlos Eduardo Liedtke BorgesView Answer on Stackoverflow
Solution 6 - JavaRamya RameshView Answer on Stackoverflow
Solution 7 - JavaMr SpecialView Answer on Stackoverflow
Solution 8 - Javauser1188867View Answer on Stackoverflow
Solution 9 - JavaMaxim FirsoffView Answer on Stackoverflow
Solution 10 - JavapavelView Answer on Stackoverflow
Solution 11 - Javauser2306383View Answer on Stackoverflow
Solution 12 - JavaAbdul bashaView Answer on Stackoverflow
Solution 13 - JavaAnand RockzzView Answer on Stackoverflow
Solution 14 - JavaUserView Answer on Stackoverflow