FirebaseApp with name [DEFAULT] doesn't exist
JavaAndroidFirebaseJava 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?
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
- apply plugin: 'com.google.gms.google-services' (build.gradle - Module layer)
- 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