Запуск Google Maps v2 в эмуляторе Android

Я пытался реализовать Google Maps v2 в своем приложении для Android, но, к сожалению, вместо карт я получаю это сообщение:

This app won't run without Google Play services which are missing from your phone.

Можно ли запускать эти карты на эмуляторе Android (платформа 4.2)?

Ответ 1

В настоящий момент, ссылаясь на Google Android Map API v2, вы не можете запускать Google Maps v2 в эмуляторе Android; вы должны использовать устройство для своих тестов.

Ответ 2

Для тех, кто обновился до последней версии google-play-services_lib и/или имеет эту ошибку Google Play services out of date. Requires 3136100 but found 2012110 эту более новую версию com.google.android.gms.apk(Google Play Services 3.1.36) и com.android.vending.apk(Google Play Store 4.1.6).

Проверьте эту конфигурацию на Android SDK Tools 22.0.1. Другая конфигурация, ориентированная на чистый Android, а не на Google, тоже должна работать.

  • Устройство: Galaxy Nexus
  • Цель: Android 4.2.2 - Уровень API 17
  • CPU/ABI: ARM (armeabi-v7a)
  • Проверено: Использовать хост-GPU

...

  • Откройте AVD
  • Выполните это в терминале /cmd

    adb -e install com.google.android.gms.apk
    adb -e install com.android.vending.apk
    
  • Перезагрузите AVD

  • Получайте удовольствие от кодирования!!!

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

Ответ 3

Попробуйте следующее. Это было успешно для меня.

Шаги:

  • Создайте новый эмулятор с такой конфигурацией: AVD configuration

  • Запустите эмулятор и установите следующие APK файлы: GoogleLoginService.apk, GoogleServicesFramework.apk и Phonesky.apk, Вы можете сделать это со следующими командами:

    adb shell mount -o remount,yourAvdName -t yaffs2 /dev/block/mtdblock0 /system
    adb shell chmod 777 /system/app
    adb push GoogleLoginService.apk /system/app/
    adb push GoogleServicesFramework.apk /system/app/
    adb push Phonesky.apk /system/app/
    

    Ссылки для APK:

  • Установите сервисы Google Play и Карты Google в эмуляторе

    adb install com.google.android.apps.maps-1.apk
    adb install com.google.android.gms-2.apk
    
  • Загрузите версию 4 Google Play Service из эту ссылку и добавьте в папку sdkmanager->extra->google play service.
  • Импортировать google-play-services_lib из androidsdk\extras\google\google_play_services.
  • Создайте новый проект и ссылайтесь на вышеуказанный проект как на проект библиотеки.
  • Запустите проект.

Ответ 4

Я успешно установил Google Maps v2 на эмуляторе, используя это руководство.
Вы должны сделать следующие шаги:

  • Создайте новый эмулятор Nexus S, Android 2.3.3. Не используйте API Google.
  • Установите com.android.vending.apk (Google Play Store, v.3.10.9)
  • Установите com.google.android.gms.apk (Служба Google Play, версия 2.0.12)

Ответ 5

Я рекомендую использовать эмулятор от Genymotion вместо эмуляторов Google. Он запускается быстрее и реагирует почти в режиме реального времени. Он также поддерживает службы Google Play и, следовательно, Карты Google.

Google Maps on Genymotion

Попробуй! Вот сообщение в блоге, которое поможет вам настроить эмулятор.

Ответ 6

Я могу запустить эмулятор для моего приложения с Google Map V.2 (с Google Play Service V.4). Я последовал за шагами, которые другие предложили с некоторыми неудачами, однако я узнал об этом и как-то заставил его работать. Вот как это делается:

  • Прежде всего: вы должны закодировать свое картографическое приложение. правильно со всеми соответствующими настройками разрешений в вашем метафайле XML, а также частью приложения Google Play Services APK вашего приложения. Чтобы убедиться, что это так, вы должны запустить приложение на устройстве REAL и знать, что оно работает с его картой. Затем вы можете продолжить обработку своего эмулятора, как показано ниже.

  • Создайте новый эмулятор или используйте существующий эмулятор со спецификациями:

    • Target Name = Android 4.1.2
    • Уровень API = 16
    • CPU = Any. Тем не менее, я обнаружил, что ARM намного быстрее/отзывчивее, чем x86
    • Достаточно памяти оперативной памяти и пробела MB
  • Запустите эмулятор (ваш целевой эмулятор должен быть запущен!)

  • Загрузите следующие APK (доступные через Dropbox за 4/2/2013) в свой локальный каталог (сканирование на наличие вирусов!):

  • Установите эти два APK в ваш эмулятор запуска (целевого) с помощью команды ADB:

    DOS/Console Prompt > adb -e install [путь к APK файлу]

    ПРИМЕЧАНИЕ. Возможно, у вас были эти APK, установленные в вашем эмуляторе во время этой пробной ошибки, и по какой-то причине необходимо переустановить. Вы должны сначала удалить их: adb -e uninstall (com.google.android.gms или com.android.vending)

  • Здесь ситуация может оказаться сложной. Вы считаете, что все готово, но когда вы снова открываете приложение с помощью карты, но все, что вы получаете, это ошибка, говорящая о том, что "службы Google Play устарели. Требуется 2012100, но найдено 2010110" и могут видеть кнопку "Обновить" Google Play. Если это так, НЕ пытайтесь нажимать кнопку обновления, поскольку он ничего не сделает. Я тоже получил эту ошибку, и я решил ее выполнить оба этих дополнительных шага:

    • Очистить-перестроить-переустановите мое приложение в эмулятор
    • Завершите мой эмулятор и заново запустите его.
  • Что это, он работает сейчас красиво.

Ответ 7

Вам нужно попробовать эмулятор с версией API Google. Каждая платформа имеет две версии: Android и Android + API Google. Убедитесь, что при создании AVD вы выбираете версию Google API в целевом поле.

И страница Убедитесь, что устройства имеют APK сервисов Google Play, также могут быть полезны.

Ответ 8

Я успешно выполнил наше приложение, которое требует API Карт Google 2, на AndroVM виртуальной машине.

AndroVM не поставляется с установленными Google Maps или Google Play, но предоставляет измененную копию архива Cyanogen Gapps, который представляет собой набор проприетарных приложений Google, установленных на большинстве Android-устройств.

Инструкции, скопированные из FAQ AndroVM:

Как установить Google Apps (включая приложение Market/Play)?

  • Загрузите Google Apps: gapps-jb-20121011-androvm.tgz [в основном каталог /system из архива Cyanogen gapps без приложения GoogleTTS, которое вылетает на AndroVM]
  • Отмените файл gapps... tgz на вашем хосте - у вас будет созданный системный каталог.
  • Получите IP-адрес управления вашего AndroVM (инструмент настройки AndroVM) и выполните "adb connect x.y.z.t"
  • сделать "adb root"
  • подключитесь к "adn connect x.y.z.t"
  • do "adb remount"
  • do "adb push system//system/"

Ваша виртуальная машина перезагрузится, и у вас должны быть приложения Google, в том числе Market/Play.

У вас не будет некоторых Google Apps, таких как Карты, но они могут быть загружены с рынка/игры.

Итак, следуйте этим инструкциям, а затем просто установите Карты Google в Google Play!

Некоторые большие побочные эффекты использования виртуальной машины, а не эмулятора:

  • Важнейшая общая производительность
  • Ускорение OpenGL
  • Поддержка Google Play.

Единственным ударом на дороге пока не хватало жестов с несколькими касаниями, что является обломком для картографического приложения! Я планирую обойти это со скрытым механизмом пользовательского интерфейса, поэтому не такая огромная проблема.

Ответ 9

Google обновил API 23 для таргетинга виртуальных устройств. Теперь он поставляется с Google Play Services 9.0.80. Поэтому, если вы используете Google Maps API V 2.0 (я использую игровые сервисы-карты: 9.0.0 и play-services-location.9.0.0), обходной путь не требуется. Он просто работает!

Ответ 10

Я попытался выполнить описанные выше шаги (paniniluncher), но получил следующее сообщение:

Google Play services out of date. Requires 3025100 but found 2012110

Я получил это сообщение, потому что мне нужны разные версии файлов, отмеченные выше. Чтобы решить проблему, я сначала удалил файлы, на которые были упомянуты выше, загрузил нужные мне версии (как указано в следующей публикации StackOverflow:

Устаревшие службы Google Play. Требуется 3025100, но найдено 2012110

а затем установили эти файлы с помощью `adb -e install [path-to-APK-file], а затем перезапустили эмулятор, и он работал отлично!

Ответ 11

Я уже ответил на этот вопрос в ответе на вопрос "Переполнение стека" . Неисправность с помощью кнопки входа в систему Google в эмуляторе. Он работает только для Android 4.2.2, но позволяет использовать "Intel Atom (x86)" в AVD.

Я думаю, что это легко сделать для других версий Android. Просто найдите правильные файлы.