Откуда происходит исключение GoogleClientApiConnected? - PullRequest
2 голосов
/ 06 ноября 2019

Для проекта я создаю приложение для Android, которое включает WebView, service, которое может переключаться с фона на передний план, и LocationManager, полагаясь на NETWORK_PROVIDER сначала и GPS_PROVIDER позже. В очень случайных случаях при запуске приложения я нахожу это исключение в своем выводе logcat:

E/GoogleApiClientConnecting: GoogleApiClient connecting is in step STEP_SERVICE_BINDINGS_AND_SIGN_IN but received callback for step STEP_GETTING_REMOTE_SERVICE
    java.lang.Exception
        at qw.b(PG:25)
        at qw.c(PG:36)
        at Iw.c(PG:3)
        at Gx.c(PG:2)
        at ly.d(PG:15)
        at gy.a(PG:19)
        at iy.c(PG:6)
        at hy.handleMessage(PG:46)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at oG.dispatchMessage(PG:1)
        at android.os.Looper.loop(Looper.java:214)
        at android.os.HandlerThread.run(HandlerThread.java:65)

Я проверил свой код и свои зависимости, и у меня, похоже, нет ничего, связанного с GoogleApiClient (который я нашел был в любом случае устаревшим). Я (сознательно) не использую интеграцию с Google Play Store или подобные вещи.

Похоже, что это исключение очень сильно замедляет мой WebView (каждый XHR или выборка останавливаются почти на 3 секунды). Как это может быть связано, я не знаю.

Плюс, это происходит только изредка при запуске или перезапуске приложения (иногда после очистки всех данных).

Буду признателен за любую помощьэто меня беспокоит.

1 Ответ

0 голосов
/ 12 ноября 2019

Как правильно указано в комментариях, речь идет об использовании сервиса Google. Обратившись к источнику библиотеки Google Gms, вы сможете найти причину для этого. Во время инициализации библиотеки.

1) Подробно служба Google инициализируется как Bound Service в Android. И лишь немногие int-флаги используются для аннотирования, когда GoogleApiClient не готов. Используя два значения STEP_SERVICE_BINDINGS_AND_SIGN_IN и STEP_GETTING_REMOTE_SERVICE. Некоторые из этих ресурсов декомпилированы, и вы можете проверить их здесь .

2) Чтобы решить вашу проблему, вам необходимо проверить инициализацию этого Сервиса из других зависимостей. Корневая библиотека - com.google.android.gms. Вы можете проверить, используется ли эта библиотека, позвонив по номеру ./gradlew app:dependencies.

3) В то же время, найдя эту библиотеку, вы можете проверить, что устарело. Использование GoogleApiClient устарело и было удалено в 2017 году. Так что, вероятно, оно все еще используется старой библиотекой, которая требует обновления.

...