Ulepszony aplikację w rozwoju do 9.0.0 z tymi zmianami i regeneracja google-services.json
:Po uaktualnieniu do 9.0.0 Usługi Google Play, App wisi w DynamiteModulesC
classpath 'com.google.gms:google-services:3.0.0'
compile 'com.google.android.gms:play-services:9.0.0'
Po aktualizacji, gdy aplikacja inicjuje, pojawia się oczekiwana sekwencja komunikatów logcat. Po około 7 sekundach ponownie wysyłana jest ta sama sekwencja wiadomości, z dodanym nagłówkiem background_crash
. Na przykład:
17:39:30.162 5453-5453/com.xxx.nub:background_crash I/MultiDex: install done
Aplikacja działa normalnie, dopóki nie zostanie ukryta, na przykład rozpoczynając działanie w innej aplikacji. Po 5 sekundach system wykryje, że aplikacja jest zawieszony:
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'
Ślad stosu wskazuje aplikacja jest zawieszony w 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)
problem występuje na telefon z systemem KitKat. Problem występuje na telefonie z uruchomionym programem Lollipop, który nie występuje w przypadku telefonu ani w postaci.
Kompletne dane wyjściowe logcat
można wyświetlić here.
Zgodnie z sugestią zastąpiłem zależność od usług odtwarzania siedmioma konkretnymi zależnościami, których aplikacja faktycznie potrzebuje. Ta zmiana wyeliminowała zawieszanie i wiele komunikatów ostrzegawczych związanych z Firebase w kodzie logowania. Dziękuję za odpowiedź i zgłoszenie problemu. –
@IanBarber oznacza, że "classpath" com.google.gms: google-services: 3.0.0'' nadal będzie uwzględnione w gradle poziomu projektu? –
Tak, ten pozostaje tam, ponieważ jest wtyczką dla samego gradle zamiast aplikacji. –