Cómo evitar TagManager "IllegalStateException: Resultados ya se han establecido"
Recientemente he introducido Google TagManager en mi aplicación de Android con el fin de presionar los cambios en la configuración de la aplicación sin necesidad de volver a implementar la aplicación.
Pero estoy recibiendo ejemplos de:
- Configurar Firebase Analaytics + Administrador de etiquetas de Google (GTM) por variante de creación
- Eventos que no disparan en Google Analytics a través del Administrador de etiquetas de Google
- Etiqueta de comercio electrónico mejorada a través de GTM v5 mediante paquete firebase
- El administrador de etiquetas de Google no empujará el evento al datalayer en Android
- El Administrador de etiquetas de Google para Android no funciona
java.lang.IllegalStateException: Results have already been set at com.google.android.gms.common.internal.pa(Unknown Source) at com.google.android.gms.common.api.b$aa(Unknown Source) at com.google.android.gms.tagmanager.ed.a(Unknown Source) at com.google.android.gms.tagmanager.ed.a(Unknown Source) at com.google.android.gms.tagmanager.ed$ba(Unknown Source) at com.google.android.gms.tagmanager.ed$ba(Unknown Source) at com.google.android.gms.tagmanager.cj.c(Unknown Source) at com.google.android.gms.tagmanager.ck.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:841)
Se producen a través de una variedad de dispositivos de Android 4.4 a 5.0.1
Como se puede ver, no hay ningún elemento de mi aplicación en el stacktrace, y estoy realmente en una pérdida y lo que puedo hacer (con excepción de eliminar TagManager) para evitar o mitigar el error.
He encontrado una referencia al mismo mensaje de error asociado con el inicio de sesión de GooglePlus, por lo que pienso que podría estar relacionado con la biblioteca de Google Play Services.
¿Alguien más lo ha visto? ¿Algunas ideas?
Han planteado problemas con el proyecto de Play-Games: https://code.google.com/p/play-games-platform/issues/detail?id=209
- Cómo implementar Google Tag Manager en Córdoba
- Implementación del Administrador de etiquetas de Google en Android
- Administrador de etiquetas de Google lanza mensaje de "macro no válida"
- La aplicación deja de responder después de reanudar desde el fondo a veces. ¿Podría culpar a Firebase?
- Experimentos de contenido de Android con el Administrador de etiquetas no muestra sesiones después de varios días
- Contenedor de descarga binaria de Google Tag Manager V4
- Administrador de etiquetas de Google para Android v4 ContainerLoadedCallback
- El seguimiento de eventos de Administrador de etiquetas de Google no funciona
Se trata de un error interno debido a una condición de competencia en TagManager y se debe corregir en Google Play Services 6.7 (17 de febrero de 2015).
Consulte https://productforums.google.com/forum/?utm_medium=email&utm_source=footer#!msg/tag-manager/NOlng117_2g/w46OkQS5Gm8J y también https://developers.google.com/analytics/devguides/collection/android/ changelog
Mientras tanto usted puede trabajar alrededor de él por:
private static class MyHandler implements Thread.UncaughtExceptionHandler { private final Thread.UncaughtExceptionHandler defaultHandler; MyHandler(Thread.UncaughtExceptionHandler defaultHandler) { this.defaultHandler = defaultHandler; } @Override public void uncaughtException(Thread thread, Throwable ex) { String classpath = null; if (ex != null && ex.getStackTrace().length > 0) { classpath = ex.getStackTrace()[0].toString(); } if (classpath != null && ex.getMessage().contains("Results have already been set") && classpath.contains("com.google.android.gms.tagmanager") ) { // ignore } else { // run your default handler defaultHandler.uncaughtException(thread, ex); } } }; // Application#onCreate public void onCreate() { // for catching app global unhandled exceptions final Thread.UncaughtExceptionHandler defaultHandler = Thread.getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler(new MyHandler(defaultHandler)); }
De acuerdo con este vínculo, Google ha solucionado este problema en versiones más recientes:
https://developers.google.com/analytics/devguides/collection/android/changelog
- Error de "aplicación" de sesión al instalar APK
- android: facturación Inapp: respuesta de error: 7: artículo ya poseído