aggiornato un app in fase di sviluppo a 9.0.0 con questi cambiamenti e di una rigenerazione di google-services.json
:dopo l'aggiornamento a Google Play Services 9.0.0, App si blocca in DynamiteModulesC
classpath 'com.google.gms:google-services:3.0.0'
compile 'com.google.android.gms:play-services:9.0.0'
Dopo l'aggiornamento, quando l'applicazione inizializza, appare la sequenza prevista di messaggi logcat. Dopo circa 7 secondi, viene nuovamente emessa la stessa sequenza di messaggi con l'intestazione aggiuntiva background_crash
. Ad esempio:
17:39:30.162 5453-5453/com.xxx.nub:background_crash I/MultiDex: install done
L'app funziona normalmente fino a quando non viene nascosta, ad esempio avviando un'attività in un'altra app. Dopo 5 secondi il sistema rileva che l'applicazione è appeso:
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'
L'analisi dello stack mostra l'applicazione è appeso in 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 <0x42804a68> (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)
Il problema si verifica su un telefono con KitKat. Il problema è non si verificano su un telefono che esegue Lollipop.
L'output logcat
completo può essere visualizzato here.
Come hai suggerito, ho sostituito la dipendenza dai servizi di gioco con le sette specifiche dipendenze di cui l'app ha effettivamente bisogno. Questo cambiamento ha eliminato il blocco e molti dei messaggi di avviso relativi a Firebase nel logcat. Grazie per la risposta e il deposito del problema. –
@IanBarber vuol dire che il 'classpath 'com.google.gms: google-services: 3.0.0'' sarebbe ancora incluso nel livello di progetto? –
Sì, quello resta lì perché è un plugin per Gradle stesso piuttosto che la tua app. –