2016-05-21 6 views
14

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.

Odpowiedz

24

Proces ten jest tworzony przez Firebase Crash Reporting. Dlatego widzisz duplikaty wiadomości, ale nie sądzę, że jest to podstawowa przyczyna. Zamierzam zgłosić problem jako problem z zespołem usług Google Play, ale prawdopodobnie istnieje obejście, którego można użyć w międzyczasie:

Ponieważ określasz com.google.android.gms:play-services:9.0.0 jako zależność, którą chcesz w dosłownie wszystkich usługach Google Play - to dużo!

Polecam zastąpienie tej linii odpowiednimi potrzebnymi zależnościami. Pełną listę można znaleźć pod numerem here. Na przykład, jeśli używasz Map i Google Zaloguj się, możesz określić:

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

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. –

+0

@IanBarber oznacza, że ​​"classpath" com.google.gms: google-services: 3.0.0'' nadal będzie uwzględnione w gradle poziomu projektu? –

+1

Tak, ten pozostaje tam, ponieważ jest wtyczką dla samego gradle zamiast aplikacji. –

Powiązane problemy