it-roy-ru.com

Как обновить эмуляторы Google Play Services для Android Studio 2.2?

Существует несколько вариантов этого вопроса, однако большинство из них очень старые и на самом деле не отвечают на вопрос вообще. Я НЕ спрашиваю, как установить Play Services, которые установлены в эмуляторах Studio 2.2. 

Проблема в том, что эти эмуляторы используют старую версию сервисов Play.

Когда я запускаю тестовое приложение, которое использует Firebase для облегчения входа в Google, я получаю это диалоговое окно с предупреждением из эмулятора Nexus 5 API 23:

 enter image description here

В методе onCreate моего входа в систему у меня есть этот код:

int result = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);

    switch(result) {
        case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED:
            Log.d(TAG,"SERVICE_VERSION_UPDATE_REQUIRED");
            break;
        case ConnectionResult.SUCCESS:
            Log.d(TAG, "Play service available success");
            break;
        default:
            Log.d(TAG, "unknown services result: " + result);

    }

Это всегда возвращает SERVICE_VERSION_UPDATE_REQUIRED.

Нажатие на обновление в диалоговом окне с предупреждением ничего не может обнаружить. В журнале отладки я получаю это сообщение при сбое запуска Play Services:

W/GooglePlayServicesUtil: Google Play services out of date.  Requires 9080000 but found 8489470

Мое приложение отлично работает на реальном устройстве Android.

Какую простую вещь мне не хватает?

ТИА

27
Jim In Texas

Возможно, это не относится к этому вопросу сейчас, но хотел бы опубликовать его здесь для будущих исследователей, чтобы они увидели какую-то землю на краю моря. Я боролся с этой устаревшей службой Google Play на моем эмуляторе Nexus 5 x86, работающем с API 25 и пробующим уведомление Firebase. Я использую Firebase 10.0.1, который нуждается в Google Play Services 10.0.1. Но на моем эмуляторе я всегда получал сообщение 

W/GooglePlayServicesUtil: сервисы Google Play устарели. Требуется 1008400, но найдено 9874900

W/FA: сбой подключения к службе: ConnectionResult {statusCode = SERVICE_VERSION_UPDATE_REQUIRED, разрешение = ноль, сообщение = ноль}

Я тщательно искал способ обновления Служб Google Play на моем эмуляторе, и все, что предлагалось, никогда не работало. Наконец-то я попытался создать новый эмулятор Nexus 5 x86_64 и API 24. Вуаля !!! У него есть Google Play Services 10.0.1, и мое приложение работает. 

Меня действительно удивляет, почему на образе x86 не установлены последние версии Google Play Serviecs, и он не позволяет мне каким-либо образом обновлять его, а на образе x86_64 установлены последние сервисы Google Play.

Надеюсь, это поможет кому-то бороться с Google Play Services.

21
sukural

Что касается моего случая, я попытался проверить наличие обновлений в Android Studio, а также в сервисах Google Play и перезапустил Android Studio. Затем появился диалог обновления, который позволяет мне обновлять изображения эмулятора с правильной версией Сервисов Google Play.

 enter image description here

Дождитесь окончания обновления, затем создайте новые AVD на основе недавно обновленных изображений, и все хорошо.

8
Nicholas Lie

Предполагая, что вы используете стандартные AVD для Android, в отличие от Genymotion, вы просто должны убедиться, что все было обновлено.

Это то, что работает для меня. Если вы используете текущую версию сервисов Play, 9.6.1 или выше, убедитесь в следующем:

  1. Ваша версия инструментов сборки 24.0.3 или выше
  2. В диспетчере SDK (вкладка «Платформы SDK»):
    • При тестировании Nougat ваш эмулятор использует системный образ Google API версии 8 или выше (я использую «Системный образ Intel x86 Atom_64 API API Google»)
    • Google API установлен и обновлен (для меня "Google API, Android 24" - версия 1.0.0)
  3. В диспетчере SDK (вкладка «Инструменты SDK»):
    • Инструменты платформы Android SDK версии 24.0.3 или выше
    • Android SDK Tools - версия 25.2.2 или выше
    • Сервисы Google Play установлены и используют версию 33 или выше
    • (Возможно, не обязательно) Google Repository установлен и имеет версию 36 или выше

Убедившись в этом и перезапустив Android Studio (потому что это лучше, чем потом сожалеть), сделайте новый AVD. Я в основном использую следующие настройки: - Нуга (API 24) - ABI - x86_64 - Цель - Android 7.0 (с Google API)

Это работает для меня, так как у меня была та же самая проблема этим утром, пока я не обновил все. Удачи :)

3
James Davis

Если люди все еще ищут ответ и не нашли никакого решения, которое исправляет или обновляет Сервисы Google Play на их эмуляторах, вот что мне помогло. Я следил за несколькими SO сообщениями, в которых рекомендовано использовать новейшие инструменты сборки SDK, но пропустил очень важное обновление. То есть с платформ SDK вы должны обновить/загрузить 

Google Play Intel x86 Atom System Image

Одна картинка стоит тысячи слов:  enter image description here

2
lini sax

Я не спрашиваю, как установить Play Services, которые установлены в эмуляторах Studio 2.2.

Вы, похоже, спрашиваете, как его обновить, и в этом случае вам нужно знать, как его установить.

Проблема в том, что эти эмуляторы используют старую версию сервисов Play.

Это то, что говорит ошибка, да. 

Возможность первая: ваш эмулятор и/или библиотека SDK устарели, и вам нужен новый AVD.

Возможность вторая: Загрузите последнюю версию APK for Play Services и установите ее. Например, вы можете использовать adb для его установки. Genymotion позволит вам установить APK-файлы, перетащив их на эмулятор. 

0
cricket_007

Что сработало для меня:

  1. Проверьте и установите все новые обновления. Вы особенно хотите убедиться, что устанавливаете самую последнюю версию Сервисов Google Play. Кроме того, вы можете проверить версию Служб Google Play, которую вы используете, в SDK Manager.

  2. Удалите все ваши эмуляторы в AVD (Android Virtual Device) Manager.

  3. Создать новый эмулятор (ы).

Должно работать хорошо после слов!

0
Adly Thebaud

Эти пакеты будут работать только для Android 4.2.2 и выше, в этом ответе я беру пример (API 17). И он будет работать.

Начнем с запуска менеджера SDK. Сначала нам нужно убедиться, что установлен Android 4.2.2 (API 17) и выше.

[[email protected] tools]$ ./Android sdk

Если нет, проверьте элемент верхнего уровня «Android 4.2.2 (API 17)», нажмите «Установить 6 пакетов» и примите лицензионное соглашение.

Настройка изображения

Чтобы получить правильный образ для вашего менеджера виртуальных устройств:

  • Откройте Android SDK Manager
  • Откройте группу Android 4.2.2 (API 17)
  • Проверьте Google API
  • Проверьте ARM образ системы EABI v7a

    [! [Google Android SDK требуется инструмент] [1]] [1]

После установки закройте менеджер SDK и запустите диспетчер AVD. Здесь нам нужно создать новый AVD, который использует платформу Android 4.2.2 и имеет включенные снимки, чтобы любые сделанные нами изменения были постоянными.

[[email protected] tools]$ ./Android avd

Далее нам нужно свернуть соответствующий пакет Служб Google. Используя Android 4.2.2 (API 17) и выше, мы должны использовать соответствующий пакет по ссылке ниже.

[https://www.androidfilehost.com/?w=files&flid=5649][2]

После загрузки распакуйте архив. Чтобы установить Google Play, нам нужно вставить следующие 3 APK в наш AVD (находится в ./system/app/):

  • GoogleServicesFramework.apk
  • GoogleLoginService.apk
  • Phonesky.apk

Однако, прежде чем мы это сделаем, нам нужно внести некоторые незначительные изменения в наш AVD. Давайте запустим вновь созданный AVD, используя следующую команду. Обратите внимание, что мы указали размер раздела 512 МБ. Это необходимо для того, чтобы у нашего AVD была достаточная емкость для установки Google Play Store и его зависимостей.

[[email protected] tools]$ ./emulator -avd Test -partition-size 512 -no-boot-anim

Это может занять несколько минут при первом создании AVD. После запуска нам нужно перемонтировать раздел AVD и изменить разрешения «/ system/app /», так как именно здесь будут установлены наши пакеты.

[[email protected] platform-tools]$ ./adb remount
[[email protected] platform-tools]$ ./adb Shell chmod 777 /system/app

И, наконец, мы можем отправить эти APK в наш AVD:

[[email protected] platform-tools]$ ./adb Push ~/system/app/GoogleServicesFramework.apk /system/app/
[[email protected] platform-tools]$ ./adb Push ~/system/app/GoogleLoginService.apk /system/app/
[[email protected] platform-tools]$ ./adb Push ~/system/app/Phonesky.apk /system/app/

Теперь, если ваш эмулятор работает так же медленно, как мой, установка пакета может занять несколько минут. Вы будете знать, если установка еще не завершена, если процесс запуска неоднократно падает на вас;)

Через несколько минут мы увидим, что пакет Google Play появится в меню запуска. После связывания учетной записи Google с этим AVD у нас теперь есть полностью рабочая версия Google Play, запущенная под вашим эмулятором.

Пожалуйста, обратитесь к этой ссылке: [ http://www.flinkd.org/2013/12/install-google-play-on-the-Android-emulator-api-18/][3]

Это должно сделать работу. Для получения дополнительной информации и учебника вы можете посмотреть эти видео-учебники: - [ https://www.youtube.com/watch?v=Nq5mng20PC8][4]

      [1]: http://i.stack.imgur.com/Xn2cX.png
      [2]: https://www.androidfilehost.com/?w=files&flid=5649
      [3]: http://www.flinkd.org/2013/12/installing-google-play-on-the-Android-emulator-api-18/
      [4]: https://www.youtube.com/watch?v=Nq5mng20PC8
0
Shubham Sharma