После обновления до Google Play Services 9.0.0 приложение зависает в DynamiteModulesC - программирование
Подтвердить что ты не робот

После обновления до Google Play Services 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. Проблема заключается в том, что на телефоне работает Lollipop не.

Полный вывод logcat можно просмотреть здесь.

4b9b3361

Ответ 1

Процесс background_crash создается Firebase Crash Reporting. Вот почему вы видите повторяющиеся сообщения, но я не думаю, что это главная причина здесь. Я собираюсь подавать на стол в качестве проблемы вверх по течению с командой служб Google Play, но есть, вероятно, обходной путь, который вы можете использовать в среднем:

Поскольку вы указываете com.google.android.gms:play-services:9.0.0 как зависимость, которую вы получаете буквально во всех сервисах Google Play, что очень много!

Я бы рекомендовал заменить эту строку на конкретные зависимости, которые вам нужны. Здесь вы можете найти полный список . Например, если вы используете Maps и Google Sign In, вы можете указать:

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