Nano Hash - криптовалюты, майнинг, программирование

Android Wear: сервисы Google Play устарели. Требуется x, но найдено y

У меня есть приложение Android Wear, которое я пытаюсь перенести с Eclipse на Android Studio. Он работает (более или менее) на моем LG G Watch, но при запуске на моем Moto 360 я получаю следующее сообщение в logcat:

GooglePlayServicesUtil﹕ Google Play services out of date.  Requires 6111000 but found 5091534

за которым сразу следует Connection to Google API client has failed. Запуск на эмуляторе дает аналогичное сообщение:

GooglePlayServicesUtil﹕ Google Play services out of date.  Requires 6111500 but found 5077534

Мне кажется странным, что версия Requires в каждом случае немного отличается, но это так.

Я задавал подобные вопросы здесь, на SO, и ответы обычно сводятся к тому, чтобы убедиться, что зависимости модуля Gradle используют play-services-wearable, а не только play-services. Я проверил это, и это кажется правильным; вот соответствующий раздел из моего файла build.gradle:

dependencies {
    compile project(':wearableCommon')
    compile 'com.google.android.support:wearable:+'
    compile 'com.google.android.gms:play-services-wearable:+'
}

Обратите внимание, что wearableCommon — это моя собственная библиотека, содержащая код, который я использую в нескольких носимых проектах, и она не использует GMS.

Меня особенно беспокоит тот факт, что это работает на одном устройстве, но не на другом. Если бы у меня не было 360 в доме, я вполне мог бы выпустить этот код после тестирования на своих G Watch. Тогда я был бы в состоянии попытаться отладить это в дикой природе, одновременно устраняя ущерб для сотен разгневанных владельцев 360.


Ответы:


1

Самое простое "исправление":

Настройте свой play-services-wearable специально для поиска 5.0.77

compile 'com.google.android.gms:play-services-wearable:5.0.77'

Дополнительная информация:

https://plus.google.com/u/0/101581283591300788111/posts/5bHfmjtvQ6R

У меня была буквально такая же проблема. Уэйн пытается помочь мне с этим. Присоединяйтесь к обсуждению, если хотите.

16.10.2014
  • Спасибо. Это сработало. Эта проблема возникла из-за несоответствия версий андроида в износе (работает леденец) и моего телефона (работает киткат). 12.04.2015

  • 2

    Последняя версия сервисов Google Play недавно была развернута на устройствах Android Wear. Последнее обновление SDK для play-services-wearable требует, чтобы ваше носимое устройство было обновлено, что показано в сообщении об ошибке, о котором вы сообщаете. Убедитесь, что на вашем телефоне установлена ​​последняя версия сопутствующего приложения, и оно также установит обновление на носимое устройство. Убедитесь, что ваше носимое устройство сопряжено с телефоном, иначе оно не сможет обновить носимое устройство!

    Если ваше носимое устройство сопряжено с телефоном, эти вещи будут автоматически обновляться, и проблем быть не должно.

    Я бы не рекомендовал жестко кодировать ваш build.gradle до 5.0.77, потому что тогда вы никогда не обновитесь, чтобы использовать новые API для Play Services.

    17.10.2014
  • При всем уважении, это не решение для производственного приложения. Проблема не только в том, что у моих часов (или эмулятора - WTF) устаревшее программное обеспечение, а в том, что это приложение будет распространяться среди тысяч пользователей. И в реальном мире не у каждого пользователя всегда есть последняя версия всего программного обеспечения. Недопустимо, чтобы приложение, за которое кто-то заплатил, просто не работало, когда его GMS еще не синхронизирована. В лучшем случае мне пришлось бы вводить код, чтобы проверить, что версия GMS была в порядке, и это на самом деле не исправило бы ее, просто сделало бы ее сбой менее непрозрачным. 18.10.2014
  • Я понимаю вашу озабоченность, но для того, чтобы приложение появилось на часах пользователя, оно будет доставлено через Play Store и сопутствующее приложение. Сопутствующее приложение, содержащее последнюю версию сервисов Google Play, также будет обновлено одновременно, поэтому проблем не возникнет. Так что эта проблема не должна затрагивать обычных пользователей, скачивающих через Play Store, а не устанавливающих приложения вручную через ADB. 18.10.2014
  • Вы также можете исправить версию build.gradle на что-то вроде 5.0+ или 5.0.77, если вы действительно хотите придерживаться конкретной известной версии. Но тогда вы пропустите все выпущенные исправления ошибок. Но у вас есть возможность решить, что приемлемо для вас здесь. 18.10.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..