升级到Google Play服务9.0.0后,应用程序挂接在DynamiteModulesC中

使用这些更改将开发中的应用升级到9.0.0,并重新生成了google-services.json

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

升级后,当应用程序初始化时,会出现预期的logcat消息顺序。 大约7秒后,再次输出相同的消息序列,并添加标题background_crash 。 例如:

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

该应用程序正常运行,直到它隐藏,例如通过在另一个应用程序中启动一个活动。 5秒后,系统检测到应用程序已挂起:

 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' 

堆栈跟踪显示应用程序挂在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) 

在运行KitKat的手机上发生此问题。 在运行棒棒糖的手机上不会发生这个问题。

完整的logcat输出可以在这里查看。

background_crash进程是由Firebase崩溃报告创build的。 这就是为什么你看到重复的消息,但我不认为它的根本原因在这里。 我将把这个挂起文件作为Google Play服务小组的上游问题提交,但是您可能同时使用一种解决方法:

因为您将com.google.android.gms:play-services:9.0.0指定为依赖项,所以您只需将所有Google Play服务引入其中即可。

我会build议用你需要的特定的依赖关系replace那一行。 你可以在这里find完整的列表。 例如,如果您使用Google地图和Googlelogin,则可以指定:

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