⚠️ Dificultad encontrada en este punto

Estuve bloqueada bastante tiempo hasta que di con la clave, y es que la versión de google no era compatible con la versión del AGP que estaba usando en mi proyecto.

Hay que tener en cuenta la versión del Android Gradle Plugin (AGP) de nuestro proyecto, ya que es probable que dependiendo de la versión del plugin existan incompatibilidades con alguna versión del SDK de EMMA. Esto está explicado en este apartado de la documentación oficial:

https://developer.emma.io/es/android/update-android-gradle-plugin-8

Además, es importante tener en cuenta tener la última actualización del SDK de EMMA. En la siguiente página se pueden ver más detalles sobre todas las actualizaciones:

https://developer.emma.io/es/android/sdk-upgrades

Versión Catalog (libs.versions.toml)

En mi caso, usaré una alternativa a la propuesta en la documentación oficial de gestión de dependencias, y en esta guía usaré la versión Catalog,* para así tener centralizadas todas las versiones en el documento libs.versions.toml de mi proyecto. Estas son las versiones que utilizaré para la app de prueba:

[versions]
agp = "8.10.1"
kotlin = "2.0.21"
emma = "4.15.5" #emma SDK version
google = "4.4.1" #google plugin
firebaseMessaging = "24.0.1" #firebase services

⚠️ Sobre la versión Catalog y Huawei: Como se indica en la documentación oficial de developer.emma.io:

Si la aplicación se va a subir a AppGallery o va a ser ejecutada en dispositivos compatibles con HMS, es necesario añadir la conexión con Huawei y la librería para obtener un identificador único para el dispositivo.

El plugin com.huawei.agconnect no está publicado como plugin Gradle moderno en el Gradle Plugin Portal, sino como dependencia de clase en buildscript (forma antigua). Es por ello que si se va a integrar el SDK de EMMA para dispositivos HUAWEI, NO es posible usar la versión Catalog.

Descarga e integración básica

Descargar EMMA android SDK introduciendo las dependencias correspondientes y sincronizando posteriormente el proyecto.

  1. Añadir la dependencia vía libs.versions.toml