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:

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

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

  • Administrador de etiquetas: ¿Cómo cargar el contenedor predeterminado binario?
  • Android - Administrador de etiquetas de Google con Google Analytics y Firebase Analytics
  • ¿Se actualiza automáticamente el contenedor del Gestor de etiquetas de Google? Si es así, ¿cómo / dónde?
  • El Administrador de etiquetas de Google envía números enteros en lugar de decimales
  • Administrador de etiquetas de Google Android: JSONArrays no son compatibles
  • Google Tag Manager no se ve en Google Analytics
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.