Después de actualizar a Google Play Services 9.0.0, la aplicación se bloquea en DynamiteModulesC

Se actualizó una aplicación en desarrollo a 9.0.0 con estos cambios y una regeneración de google-services.json :

 classpath 'com.google.gms:google-services:3.0.0' compile 'com.google.android.gms:play-services:9.0.0' 

Después de la actualización, cuando la aplicación se inicializa, aparece la secuencia esperada de mensajes de logcat. Después de aproximadamente 7 segundos, se vuelve a emitir la misma secuencia de mensajes, con el encabezado adicional background_crash . Por ejemplo:

 17:39:30.162 5453-5453/com.xxx.nub:background_crash I/MultiDex: install done 

La aplicación funciona normalmente hasta que se oculta, por ejemplo, al iniciar una actividad en otra aplicación. Después de 5 segundos, el sistema detecta que la aplicación está colgada:

 05-20 17:40:10.315 5138-5138/com.xxx.nub I/MainActivity: STOP MainActivity 05-20 17:40:10.375 5138-5138/com.xxx.nub I/NubApplication: onTrimMemory(): TRIM_MEMORY_UI_HIDDEN 05-20 17:40:10.375 5138-5138/com.xxx.nub D/FirebaseApp: Notifying background state change listeners. 05-20 17:45:10.465 5138-5143/com.xxx.nub I/dalvikvm: threadid=3: reacting to signal 3 05-20 17:45:10.565 5138-5143/com.xxx.nub I/dalvikvm: Wrote stack traces to '/data/anr/traces.txt' 

El seguimiento de la stack muestra que la aplicación se colgó en com.google.android.gms.DynamiteModulesC

 ----- pid 5138 at 2016-05-20 17:45:10 ----- Cmd line: com.xxx.nub JNI: CheckJNI is off; workarounds are off; pins=0; globals=295 DALVIK THREADS: (mutexes: tll=0 tsl=0 tscl=0 ghl=0) "main" prio=5 tid=1 WAIT | group="main" sCount=1 dsCount=0 obj=0x416c5ea0 self=0x415bb5d0 | sysTid=5138 nice=-11 sched=0/0 cgrp=apps handle=1073844564 | state=S schedstat=( 0 0 0 ) utm=1774 stm=244 core=1 at java.lang.Object.wait(Native Method) - waiting on  (a aaf) at java.lang.Object.wait(Object.java:364) at aaf.a(:com.google.android.gms.DynamiteModulesC:75) at zq.onTrimMemory(:com.google.android.gms.DynamiteModulesC:1187) at android.app.Application.onTrimMemory(Application.java:148) at com.xxx.nub.NubApplication.onTrimMemory(NubApplication.java:211) at android.app.ActivityThread.handleTrimMemory(ActivityThread.java:4298) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1481) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:146) at android.app.ActivityThread.main(ActivityThread.java:5487) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) at dalvik.system.NativeStart.main(Native Method) 

El problema ocurre en un teléfono que ejecuta KitKat. El problema no ocurre en un teléfono que ejecuta Lollipop.

La salida de logcat completa se puede ver aquí .

El proceso background_crash es creado por Firebase Crash Reporting . Es por eso que estás viendo los mensajes duplicados, pero no creo que sea la causa principal aquí. Voy a presentar el problema como problema con el equipo de servicios de Google Play, pero probablemente haya una solución alternativa que pueda usar mientras tanto:

Como está especificando com.google.android.gms:play-services:9.0.0 como una dependencia, está incorporando literalmente todos los servicios de Google Play, ¡lo cual es mucho!

Recomendaría reemplazar esa línea con las dependencias específicas que necesita. Puedes encontrar una lista completa aquí . Como ejemplo, si usa Maps y Google Inicie sesión, puede especificar:

 compile 'com.google.android.gms:play-services-auth:9.0.0' compile 'com.google.android.gms:play-services-maps:9.0.0'