2

С момента обновления моих пакетов диспетчера SDK мои сервисы Google Play не работают.Службы Google для Google Play нарушены? isConnected() выдает ошибки

Это приводит к тому, что мой Samsung S5 работает 5.0, HTC One_M8 работает 5.0.1, а мой Nexus 5 работает 6.0 (предварительный просмотр Android M), чтобы сбой.

java.lang.IncompatibleClassChangeError: The method 'boolean com.google.android.gms.common.api.GoogleApiClient.isConnected()' was expected to be of type interface but instead was found to be of type virtual (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar) 

Запуск и тот же код на Samsung Mega работает 4.4.2 и Nexus 4 работает 4.4.4, я получаю эту ошибку.

java.lang.NoSuchMethodError: com.google.android.gms.common.api.GoogleApiClient.isConnected 

Эти ошибки только начали происходить после последних обновлений от SDK Manager, я обновить очень регулярно и мое последнее обновление, прежде чем я заметил, что вопрос был 5 октября, 2015.

Текущий SDK

  • Android Поддержка Repository: 21.
  • Android Поддержка библиотеки: 23.0.1
  • Google Play услуги: 27
  • Android SDK Tools: 24.4
  • Android SDK Platform-инструменты: 23.0.1
  • Android SDK Строить-инструменты: 23.0.1

Все работало отлично перед обновлением. В любом случае, чтобы исправить это? Я трачу часы, пытаясь понять, что-то где-то прикрутил, но никаких изменений в моем проекте, связанных с сервисами google play, не было с тех пор, как он работал в последний раз. Я подтвердил с кем-то, используя ту же самую кодовую базу, которую я использую (мы используем git), которая еще не обновила свои пакеты SDK, что наш код по-прежнему работает для него. Мне, возможно, придется отменить мои инструменты SDK, так как я не могу просто подождать, чтобы найти возможное исправление, если это ошибка. Я получаю обновление очень новое, но я не могу быть единственным, у кого есть эта проблема.

Любые идеи о том, как исправить это?

Спасибо!

+3

См. Последнюю марку части сентябрьского 2015 года [примечания к выпуску] (https://developers.google.com/android/guides/releases), поскольку это похоже на то, что вы видите. – CommonsWare

+3

Также проверьте [это сообщение reddit] (https://www.reddit.com/r/androiddev/comments/3mehbb/breaking_changes_in_google_play_services_81/). Если вы используете библиотеку, которая также зависит от сервисов Google Play, а зависимость библиотеки не обновляется, а ваша собственная, она будет вызывать указанную вами ошибку. – NoChinDeluxe

+0

Большое вам спасибо! Похоже, это действительно моя проблема. Программное обеспечение, которое я пишу, представляет собой библиотеку, которую другие пользователи внедряют в свои приложения. Мы мало контролируем, какую версию игровых сервисов Google они используют.Похоже, мне нужно как-то программно проверить, какая версия GPS в своем приложении, которую они компилируют, теперь имеет два разных класса для поддержки GPS в зависимости от версии? Есть ли способ сделать это? sigh – Dave

ответ

1

Хорошо, я выяснил, какова была моя проблема. Было странно, что метод isConnected() в GoogleApiClient сломается, а все остальные статические методы могут быть вызваны без проблем. Но когда у вас есть обновление API, которое объявляется «изменением», вы ожидаете, что ситуация перестанет работать.

Ну, в среду, 7 октября. Я заметил еще одно обновление, которое у меня, наконец, было возможность проверить, и проблема больше не присутствует. Таким образом, похоже, что это было ошибкой в ​​их «разрыве изменений». К счастью, Google получил это исправление довольно быстро. Но теперь это работает. Поэтому я по существу вернул код обратно к тому, каким он был раньше. Ура!

+0

в моем случае. я получил обновленную библиотеку игровых сервисов google..i понижен до com.google.android.gms: play-services: 7.5.0 ' – John

Смежные вопросы