GoogleService no se pudo inicializar

Estoy usando Google Maps en mi aplicación de Android. Creé la clave y agregué los permisos necesarios en el archivo de manifiesto. Pero pronto empiezo la aplicación, obtengo este mensaje en el depurador:

GoogleService no se pudo inicializar, estado: 10, Falta un recurso esperado: ‘R.string.google_app_id’ para inicializar los servicios de Google. Causas posibles: Google-services.json o com.google.gms.google-services gradle plugin.

No estoy seguro de lo que está mal. El mapa funciona bien y puedo usarlo sin problemas. Mi archivo gradle tiene esta entrada:

comstackr ‘com.google.android.gms: play-services: 8.4.0′

¿De qué se queja y cómo lo alivia?

Debe colocar el archivo de configuración ( google-services.json ) generado por developer.google.com , como se menciona en el segundo paso de los documentos oficiales aquí.

El proceso es simple

  1. Puede seleccionar su proyecto o crear uno nuevo.
  2. Luego, después de seleccionar los servicios deseados (en este caso, el servicio de mapas), puede generar el archivo de configuración.

    Para las personas que han migrado a los proyectos de Firebase, pueden obtener lo mismo accediendo a Firebase Console , seleccionando su proyecto y en la configuración encontrará el archivo de configuración.

  3. Luego, como se cita en el paso 3 de los documentos oficiales aquí

    Copie el archivo google-services.json que acaba de descargar en la aplicación / o el directorio / móvil de su Android

PD: Para las personas que rechazan esta respuesta, por favor dejen un comentario sobre por qué están bajando la votación.

[Desde Product Manager @ Google]

Para solucionar este problema, descargue y copie el archivo google-services.json para su aplicación de Android siguiendo los pasos a continuación:

  • Seleccione el nombre de su aplicación / proyecto y el nombre del paquete de Android desde este enlace y haga clic en Continue to Choose and configure services .
  • Haga clic en Continue to Generate Configuration files .
  • Descargue google-services.json y copie el archivo en la app/ o en el directorio de mobile/ módulos en su proyecto de Android.

Si ya importó su proyecto de Google en Firebase, puede obtener google-services.json actualizado de la consola de Firebase en Configuración del proyecto.

NO COPIE el PROJECT_NUMBER como lo sugiere una de las otras respuestas, ya que google_app_id se refiere a su aplicación dentro de un proyecto y no al proyecto en sí.

En mi caso, la causa de este error fue que el complemento de Servicios de Google para Gradle y la biblioteca de Play Services eran versiones incompatibles. Instrucciones para versiones compatibles:

1) Agregue la dependencia a su build.gradle de nivel de proyecto:

 classpath 'com.google.gms:google-services:1.5.0-beta2' 

2) Agregue el complemento a su build.gradle de nivel de aplicación:

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

3) Si está usando Android Studio, esta es la cadena para agregar a la sección de dependencia del archivo build.gradle de su aplicación:

 dependencies { compile "com.google.android.gms:play-services:8.3.0" } 

Fuente: https://developers.google.com/cloud-messaging/android/client

Encontré el mismo problema y resolví que seguía la solución oficial .

Estos son los pasos:

  1. obtener el archivo de configuración google-services.json desde este enlace .

  2. Copie el archivo google-services.json que acaba de descargar en la aplicación / o el directorio / móvil de su proyecto Android Studio.

  3. Agregue la dependencia a su build.gradle de nivel de proyecto:

     classpath 'com.google.gms:google-services:1.5.0-beta2' 
  4. Agregue el complemento a su build.gradle de nivel de la aplicación:

     apply plugin: 'com.google.gms.google-services' 
  5. Agregue esta dependencia a su build.gradle de nivel de aplicación:

     dependencies { compile "com.google.android.gms:play-services:8.3.0" } 

Esto también me pasa a mí. En mi caso, es porque el estudio de Android intentó insertar algún código en mi actividad principal. Eliminar el código corrige el error

El código insertado se trata de la indexación de aplicaciones:

https://developers.google.com/app-indexing/android/publish

Tuve el mismo problema en ese entonces. Pude resolverlo usando solo la biblioteca de servicios de juego necesaria, que en mi caso es GCM.

En lugar de com.google.android.gms:play-services:8.4.0 , utilizo com.google.android.gms:play-services-gcm:8.4.0 . Mira aquí para más información; esto también resuelve el problema multidex.

Luego apliqué el enfoque de @Radix y @ Alexander para eliminar el mensaje que GCM publicó en el logcat con respecto a google-services.json .

Solo tengo otra solución que elimino accidentalmente

 SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); 

Agregue esto y trabaje, es para una nueva solución

Para aquellos que enfrentan este problema incluso después de configurar correctamente los servicios de reproducción y colocar el archivo google-services.json en la carpeta del project/app , la solución real es

Build > Rebuild Project

Posiblemente debido al hecho de que las cadenas del archivo json no están integradas en los recursos comstackdos hasta que se realiza una reconstrucción completa.

Puede cambiar el versionCode y el nombre de versionCode de su aplicación en su archivo Gradle.

Una solución rápida que utilicé es desactivar la firma. Si no desea crear un código de producción, puede configurar la variante de comstackción para depurar, localOldDebug o localDebug.

Haga clic en Variar variantes en la parte inferior izquierda de Android Studio.

cómo-desactivar-generado-firmado-apk-android-studio