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

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

Это приложение не будет работать без сервисов Google Play, которые отсутствуют в вашем телефоне

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

11 ответов

Решение

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

Для тех, кто обновился до последней версии 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)
  • Проверено: использовать Host GPU

...

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

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

  4. Веселого кодирования!!!

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

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

шаги:

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

  2. Запустите эмулятор и установите следующие 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:

    1. GoogleLoginService.apk
    2. GoogleServicesFramework.apk
    3. Phonesky.apk AKA Google Play Store, v.3.5.16
    4. Карты Google, v.6.14.1
    5. Сервисы Google Play, v.2.0.10
  3. Установите сервисы Google Play и Google Maps в эмуляторе

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

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

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

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

Карты Google на Genymotion

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

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

  1. Прежде всего: Вы, должно быть, закодировали свое приложение карты. правильно со всеми соответствующими настройками разрешений в вашем метафайле XML, и включите Google Play Services APK в ваше приложение. Чтобы убедиться, что это правда, вы должны запустить свое приложение на РЕАЛЬНОМ устройстве и знать, что оно работает там со своей картой. Затем вы можете приступить к обработке вашего эмулятора, как показано ниже.

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

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

  4. Загрузите следующие APK-файлы (доступные через dropbox за 02.04.2013) в локальный каталог (проверьте на вирусы!):

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

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

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

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

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

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

Я успешно запустил наше приложение, для которого требуется Google Maps API 2, на виртуальной машине AndroVM.

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

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

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

  • Загрузите Google Apps: http://androvm.org/Download/gapps-jb-20121011-androvm.tgz [в основном каталог /system из архива Cyanogen gapps без приложения GoogleTTS, которое вылетает на AndroVM]
  • Разархивируйте файл gapps…tgz на вашем хосте - у вас будет создан системный каталог
  • Получите управляющий IP-адрес вашего AndroVM ("Конфигурация AndroVM") и выполните "adb connect xyzt"
  • сделать "корень adb"
  • восстановить соединение с "adn connect xyzt"
  • сделать "adb remount"
  • сделать "ADB push system/ /system/"

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

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

Следуйте этим инструкциям, а затем просто установите Google Maps с помощью Google Play!

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

  • Исключительно превосходная общая производительность
  • OpenGL ускорение
  • Поддержка Google Play

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

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

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

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

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

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

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

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

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

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