Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


No se puede generar la versión de APK debido a GCM SenderId Android

He implementado GCM (Google Cloud Messaging) en mi aplicación. La biblioteca de Google Play Services tiene values.xml auto-generated.xml en los que mi senderId es:

 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="gcm_defaultSenderId">123</string> </resources> 

El problema es que tengo otra configuración regional y Lint durante la versión de la aplicación me está dando un error: Error:(3) Error: "gcm_defaultSenderId" is not translated in "fr" (French) [MissingTranslation]

Debido a que se genera automáticamente no puedo establecer translable = false . ¿Cómo debo arreglar esto?

5 Solutions collect form web for “No se puede generar la versión de APK debido a GCM SenderId Android”

Supongo que estás usando Android Studio.

Tenía el mismo problema con Android Studio 1.4.

Lo primero que intenté fue editar la configuración de "File – Settings – Editor – Inspections – Android Lint – Traducción incompleta" a algo más que 'Error'.

Eso no ayudó! Todavía no era capaz de construir una versión APK.

Terminé traduciendo el XML de la siguiente manera:

  1. En la carpeta … / android / res crea una nueva carpeta de idioma values-de (reemplaza de con tu código de idioma).

  2. Cree un archivo denominado google-services.xml en la carpeta de idioma.

  3. Insertar en el archivo xml:

     <?xml version="1.0" encoding="utf-8"?> <resources> <string name="gcm_defaultSenderId"><YOUR_SENDERID></string> </resources> 

    Después de eso pude construir el lanzamiento.

Añada un archivo lint.xml en la raíz de su aplicación de proyecto (bajo app /) y añada las traducciones que faltan para ignorarlas:

 <lint> <issue id="MissingTranslation"> <ignore regexp="ga_trackingId"/> <ignore regexp="gcm_defaultSenderId"/> <ignore regexp="google_app_id"/> </issue> </lint> 

Éstos ahora serán ignorados por lint – usted puede configurar qué propiedades ignorar, y usted no tendrá que esperar actualizaciones del equipo de google-services para propiedades que no han pensado.

Lint-ing seguirá atrapando todos los demás errores, por lo que todavía puede disfrutar de las otras características.

Desde la última actualización de Android Studio (1.5) tuve este problema también. Lo solucioné actualizando las dependencias de Google Services a la última versión .

De acuerdo con este vínculo , de hecho,

Este problema debe corregirse con 8.3.0 Servicios de Google Play y la dependencia de 1.5.0-beta2.

¡Espero que esto ayude! 🙂


EDIT Integración: en realidad, mientras que la cadena gcm_defaultSenderId ahora se genera correctamente (con el atributo translatable="false" ), las cadenas google_app_id y ga_trackingID , por ejemplo, no lo son.

Para aquellos que siguen teniendo problemas, llegué a la conclusión de que tenemos que esperar a que los chicos de Google solucionen este problema e ignoren el error mientras tanto añadiendo al archivo build.gradle nivel de la aplicación

 ... android { lintOptions { abortOnError false } } ... 

Probablemente tendrás otro bit de código autogenerado como este:

 String token = instanceID.getToken(getString(R.string.gcm_defaultSenderId), GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); 

Obtenga un identificador de remitente válido desde la consola de nube de google y, a continuación, puede eliminar el R.string.gcm_defaultSenderId del código anterior y también el gcm_defaultSenderId del archivo de recursos.

Si desea / necesita actualizar a la versión más reciente de:

  • Pelusa (androidstudio con pelusa de construcción)
  • Herramientas de construcción
  • CompileSdkVersion
  • Gradle plugin
  • Gradle
  • Google-services (plugin)
  • Google-services dedendencies (por ejemplo, play-services-gcm)
  • (Desafortunadamente) otras dependencias si dependen transitivelly de los servicios de google

Usted necesita elegir versiones wiselly de todas estas piezas juntas. Dado que todas estas necesidades deben ser compatibles. Desafortunadamente, no hay tabla de compatibilidad (el único que encontré es más de un año de edad, por lo que no enlace aquí. Si alguien sabe alguno por favor comparta un enlace).

Por lo tanto, la solución es investigar qué versción de qué parte bloquea cualquier otra cosa. Lo que podría ser una pesadilla, así que un montón de consejos es volver a la última configuración funcional conocida. Pero tarde o temprano nos esforzaremos por mejorar.

Comprobé las páginas de inicio de cada parte para encontrar cualquier información de versión, pero al final todavía lo resuelvo por el método de prueba y prueba.

Aquí está lo que es funcional para mí:

  • Androidstudio 1.5
  • Herramientas de construcción 23.0.2
  • CompileSdkVersion 23
  • Gradle plugin 1.5.0
  • Gradle 2.8
  • Google services plugin 1.5.0
  • Dependencias de servicios google 8.3.0
  • Afortunado, no hay otras dependencias externas de GS (obviamente todos los módulos internos necesitan usar la misma versión)
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.