Estamos viendo algunas excepciones con el mensaje. Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first.
en nuestra aplicación de Android en el que acabamos de agregar Firebase Remote Config.
El seguimiento de la pila es el siguiente:
Fatal Exception: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first.
at com.google.firebase.FirebaseApp.getInstance(Unknown Source)
at com.google.firebase.remoteconfig.FirebaseRemoteConfig.getInstance(Unknown Source)
at com.example.app.fragments.SomeFragment.updateFooter(SourceFile:295)
at com.example.app.fragments.SomeFragment.onCreateView(SourceFile:205)
at android.support.v4.app.Fragment.performCreateView(SourceFile:2080)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1108)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1290)
at android.support.v4.app.BackStackRecord.run(SourceFile:801)
at android.support.v4.app.FragmentManagerImpl.execSingleAction(SourceFile:1638)
at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(SourceFile:679)
at android.support.v4.app.FragmentPagerAdapter.finishUpdate(SourceFile:143)
at android.support.v4.view.ViewPager.populate(SourceFile:1240)
at android.support.v4.view.ViewPager.populate(SourceFile:1088)
at android.support.v4.view.ViewPager.setAdapter(SourceFile:542)
at com.example.app.SomeActivity.onSomeAsyncCallback(SourceFile:908)
at com.example.app.SomeDataRetriever.onAsyncHttpCompleted(SourceFile:72)
at com.example.app.io.AsyncHttp.onPostExecute(SourceFile:141)
at com.example.app.io.AsyncHttp.onPostExecute(SourceFile:19)
at android.os.AsyncTask.finish(AsyncTask.java:679)
at android.os.AsyncTask.access$500(AsyncTask.java:180)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:696)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:5665)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:689)
Esta es la versión 9.6.1 y también estamos usando otros componentes de Firebase:
compile 'com.google.firebase:firebase-ads:9.6.1'
compile 'com.google.firebase:firebase-config:9.6.1'
compile 'com.google.firebase:firebase-invites:9.6.1'
compile "com.google.firebase:firebase-messaging:9.6.1"
Como puedo ver en la documentación y el Javadoc no deberíamos tener que hacer ninguna inicialización manual en nuestro caso.
La excepción ocurre en Android 4-6 en una variedad de dispositivos.
Editar:
Veo que esta pregunta recibe un poco de atención. Creo que esta explicación puede ser interesante para algunos de ustedes: https://firebase.googleblog.com/2016/12/how-does-firebase-initialize-on-android.html
fuente
Respuestas:
Tuve este mismo problema hace algún tiempo.
Estás tratando de obtener una instancia de Firebase sin inicializarla. Agregue esta línea de código antes de intentar obtener una instancia de Firebase:
fuente
apply plugin: 'com.google.gms.google-services'
Asegúrese de agregar a su build.gradle de nivel raíz
Luego, en el archivo Gradle de nivel de módulo (generalmente la aplicación / build.gradle), agregue la línea 'aplicar complemento' en la parte inferior del archivo para habilitar el complemento Gradle:
Como se dijo en la documentación . Tuve la excepción como en una pregunta anterior cuando olvidé agregar esto en mis archivos gradle.
fuente
Parece que
google-services:4.1.0
tiene un problema. Cualquiera lo rebaja ao actualizarlo a
Espero eso ayude
fuente
classpath 'com.google.gms:google-services:4.1.0'
volver a usarla . YMMV.Me faltaba la línea siguiente en mi archivo app / build.gradle
y una vez limpio proyecto y ejecutar de nuevo. Eso me lo arregló.
fuente
tiene un problema. en su lugar use:
fuente
Lo primero que debe agregar com.google.gms: google-services: xxx en el nivel raíz build.gradle
}
Después de eso, debe aplicar el complemento: 'com.google.gms.google-services' en app / build.gradle
y si aún tiene problemas, entonces necesita agregar
justo antes de llamar
fuente
Después de actualizar varias dependencias, recibí un error de Crashlytics en la compilación, 'Crashlytics encontró una clave API no válida: nulo. ¡Comprueba el complemento Crashlytics para asegurarte de que la aplicación se haya agregado correctamente! Póngase en contacto con [email protected] para obtener ayuda. La única respuesta no automática que recibí de los intentos repetidos de [email protected] al que te dirige el error fue que Fabric y Crashlytics son equipos separados, por lo que no pudieron ayudarme. He evitado implementar la capa de Fabric adicional en Crashlytics, y no pude obtener una nueva clave del sitio de Fabric, ni siquiera conseguir que el sitio me reconociera. Al intentar solucionar esto simplemente eliminando Crashlytics de mi código, obtuve el 'FirebaseApp predeterminado no se inicializa en este proceso com.example.app. Asegúrese de llamar a FirebaseApp.initializeApp (Context) primero 'crash en la ejecución.
Nunca he tenido que agregar la línea de inicialización de 'FirebaseApp.initializeApp (this)', y de hecho lo había comentado. La documentación incluso menciona que no necesita esto si solo usa Firebase para una actividad. Agregarlo no hizo ninguna diferencia, todavía obtuvo el error de ejecución de la ejecución.
Resulta que lo que estaba causando los nuevos errores oscuros era la dependencia actualizada de los servicios de google. Por ahora no tengo tiempo para pasar más días tratando de corregir los errores de escopeta que está causando la nueva dependencia, así que hasta que alguien encuentre soluciones, me quedaré con la versión anterior. Además del extraño bloqueo de inicialización, la nueva versión puede estar forzando a los usuarios de Fabric en Crashlytics. Los usuarios se ven obligados a volver a la versión de dependencia anterior para esto también: Crashlytics encontró una clave API no válida: nulo. después de actualizar com.google.gms: google-services: 4.1.0
EDITAR 17/10/18: después de actualizar las siguientes dependencias nuevamente
Tuve un bloqueo inmediato en el intento de instalación con 'xxx se cerró inesperadamente', como cuando intenté la actualización de dependencia de google-services. Excavando en el registro, encontré un enlace que me indicaba que agregue esto al manifiesto
Esto es nuevo y no se menciona en las instrucciones de configuración e intersticiales aquí https://firebase.google.com/docs/android/setup y aquí https://developers.google.com/admob/android/interstitial .
Solía tener que lidiar solo con un ID relacionado con el anuncio para mi aplicación, el INTERSTITIAL_UNIT_ID. Ahora dos deben ser tratados. Además de la adición anterior, la documentación indica agregar ADMOB_APP_ID aquí (el mismo número que vincula con ads.APPLICATION_ID en el nuevo código de manifiesto)
Los identificadores INTERSTITIAL_UNIT_ID y ADMOB_APP_ID se pueden desenterrar en su consola Google AdMob. Mi aplicación de juego dejó de publicar anuncios en mi primera actualización de las dependencias de Firebase y aún no publica anuncios, dando el código de error 0 en
Incluso después de todo este desorden agregado, todavía no puedo actualizar la dependencia de los servicios de Google sin el error de inicialización de la ejecución de bloqueo. Espero estar atascado en google-services: 4.0.1 por algún tiempo.
EDITAR 24/10/18: de [email protected] después de semanas de correspondencia sobre la no recepción de anuncios después de las actualizaciones:
'Gracias por compartir los registros del dispositivo. Según los registros, parece un problema existente y esto está en nuestra lista de prioridades y nuestro equipo está trabajando en la solución y esto solo está sucediendo en los dispositivos Android O y P ''.
¿Solo dispositivos O y P? Esas son las dos últimas versiones, O salió el 25 de septiembre de 2017. Vaya.
fuente
apply plugin: 'com.google.gms.google-services'
mi build.gradle (con google-services: 4.1.0)Como mencionó @PSIXO en un comentario, este podría ser el problema con la versión de dependencia de google-services. Para mí cambiando
a
funcionó. Puede haber algún problema con la versión 4.1.0. Como perdí muchas horas en esto, pensé en escribir esto como respuesta.
fuente
Si está utilizando FirebaseUI , sin necesidad de
FirebaseApp.initializeApp(this);
su código según la muestra .Asegúrese de agregar a su build.gradle de nivel raíz:
Luego, en el archivo Gradle de nivel de módulo :
Eso es. No necesitas más.
fuente
Debe agregar la dependencia de Firebase Gradle buildscript en build.gradle (nivel de proyecto)
y agregue el complemento Firebase para Gradle en app / build.gradle
Fuente: Asistente de Android Studio
fuente
Otra posible solución: pruebe Android Studio diferente si está utilizando algunas versiones beta. Ayudado por mi. El nuevo Android Studio simplemente no agregó Firebase correctamente. En mi caso 3.3preview
Después de investigar un poco más, descubrí que el problema era que el nuevo estudio de Android inicia el proyecto con la versión más nueva de los Servicios de Google y parece que era el problema original. Como @Ammar Bukhari sugirió que este cambio ayudó:
classpath 'com.google.gms: google-services: 4.1.0' -> classpath 'com.google.gms: google-services: 4.0.0'
fuente
En mi caso, el complemento de servicios de Google no generaba el
values.xml
archivo requerido a partir delgoogle-services.json
archivo. La biblioteca Firebase usa este archivo de valores generados para inicializarse y parece que no arroja un error si no se puede encontrar el archivo de valores. Verifique que el archivo de valores exista en la siguiente ubicación y que se complete con las cadenas apropiadas de sugoogle-sevices.json
archivo:y / o
Para obtener más detalles, consulte: https://developers.google.com/android/guides/google-services-plugin
Mi caso particular fue causado por el uso de una versión de herramientas de gradle que era demasiado avanzada para la versión de Android Studio que estaba ejecutando (es decir, asegúrese de ejecutar las herramientas de grado v3.2.X-YYY con Android Studio v3.2).
fuente
No necesitamos llamar
FirebaseApp.initializeApp(this);
ninguna parte manualmente. y nosotros tampoco deberíamos.Acabo de enfrentar el mismo problema al respecto y obtuve una solución inesperada y extraña.
De esta respuesta:
He eliminado
tools:node="replace"
y está funcionando a las mil maravillas.fuente
Supongo que hay problemas de compatibilidad con la versión de google-services y las versiones de firebase.
Cambié en el archivo build.gradle del Proyecto, la dependencia
classpath 'com.google.gms: google-services: 4.1.0' a 4.2.0
y luego actualizó las dependencias build.gradle del módulo a:
implementación 'com.google.firebase: firebase-database: 16.0.6'
implementación 'com.google.firebase: firebase-core: 16.0.7'
Todo funciona como un encanto, no es necesario escribir FirebaseApp.initializeApp (esto);
fuente
La razón para esto es com.google.gms: versión de google-services . Cuando estaba usando 4.1.0 , me enfrenté al mismo error. Luego rebajo la versión. antes de
Después
Espero que resuelva el error.
fuente
Si recientemente actualizó su Android Studio a 3.3.1 que tiene un problema con las dependencias de com.google.gms: google-services (por debajo de 4.2.0). Actualice com.google.gms: google-services a 4.2.0.
fuente
Una de las razones de este hecho podría ser olvidarse de agregar
android.permission.INTERNET
permisos enAndroidManifest.xml
fuente
para mí estaba actualizando dependencias de com.google.gms: google-services dentro de build.gradle para
fuente
Aunque inicializar manualmente Firebase con
FirebaseApp.initializeApp(this);
hace que el error desaparezca, no soluciona la causa raíz, algunos problemas extraños que se combinan no parecen resolverse, comocom.google.android.c2dm.permission.RECEIVE
permiso que es solo para GCMUtilice el nuevo complemento de Gradle (por ejemplo, el complemento de Android 2.2.3 y Gradle 2.14.1) solucionó todo. (Por supuesto, la configuración debe ser correcta según la documentación de Firebase )
fuente
Mi problema no se resolvió con este procedimiento
Así que intenté algo más y ahora mi base de fuego se ha inicializado con éxito. Intente agregar lo siguiente en la aplicación module.gradle
fuente
Haga clic en Herramientas> Firebase para abrir la ventana Asistente.
Haga clic para expandir una de las funciones enumeradas (por ejemplo, Analytics), luego haga clic en el enlace del tutorial proporcionado (por ejemplo, Registrar un evento de Analytics).
Haga clic en el botón Conectar a Firebase para conectarse a Firebase y agregar el código necesario a su aplicación.
https://firebase.google.com/docs/android/setup
fuente
Firebase instalado a través de las herramientas de Android Studio ... Firebase ...
Hice la instalación a través de las herramientas integradas de Android Studio (siguiendo los últimos documentos de Firebase). Esto instaló las dependencias básicas, pero cuando intenté conectarme a la base de datos, siempre me dio el error que necesitaba llamar a inicializar primero, aunque estaba:
Recibí este error sin importar lo que hice.
Finalmente, después de ver un comentario en una de las otras respuestas, cambié lo siguiente en mi gradle de la versión 4.1.0 a:
Cuando hice eso, finalmente vi un error que me ayudó:
Ese es el problema. Parece que la versión 4.1.0 no da ese error de compilación por alguna razón, no menciona que le falta un archivo google-services.json. No tengo el archivo google-services.json en mi aplicación, así que salí y lo agregué.
Pero como se trataba de una actualización que utilizaba una base de datos de firsbase en tiempo real, nunca había tenido que generar ese archivo en el pasado. Fui a firebase y lo generé y lo agregué y solucionó el problema.
Cambiado de nuevo a 4.1.0
Una vez que descubrí todo esto, volví a cambiar la variable classpath (a 4.1.0) y la reconstruí y se bloqueó nuevamente con el error de que no se ha inicializado.
Problemas de raíz
fuente
use com.google.gms: google-services: 4.0.1 'en lugar de 4.1.0
fuente
cambiando
a
Funciona para mi
fuente
Siguiendo la respuesta de @Gabriel Lidenor, inicializar la aplicación con contexto no funciona en mi caso. ¿Qué sucede si está intentando crear firebase-app sin google-service.json? Entonces, antes de inicializar cualquier número de aplicación firebase, primero debe inicializar como;
fuente
Tendremos que inicializar Firebase en la función onCreate de la clase de aplicación.
}
Código en archivo de manifiesto: -
fuente
Motivo y solución: este es el error común que obtendrá la mayor parte del tiempo. Motivo: cuando integra su proyecto con Firebase, agrega las dependencias
y classpath
classpath 'com.google.gms:google-services:4.1.0'
solo necesitas actualizarlos
Así es como puedes actualizar
ve a gradle sript y haz esto
fuente