Карты Google v2 не отображаются

Я пытался запустить пример проекта нового Google Maps V2 API

И отображается пустой экран.введите здесь описание изображения

Вопрос в том, почему он не показывает карту на устройстве 2.2, в трассировке стека я вижу следующее сообщение:

  12-06 09:40:36.039: W/dalvikvm(14657): Unable to resolve superclass of Lmaps/a/du; (411)
  12-06 09:40:36.039: W/dalvikvm(14657): Link of class 'Lmaps/a/du;' failed
  12-06 09:40:36.039: W/dalvikvm(14657): Unable to resolve superclass of Lmaps/a/ej; (2363)
  12-06 09:40:36.039: W/dalvikvm(14657): Link of class 'Lmaps/a/ej;' failed
  12-06 09:40:36.039: W/dalvikvm(14657): Unable to resolve superclass of Lmaps/j/k; (2379)
  12-06 09:40:36.039: W/dalvikvm(14657): Link of class 'Lmaps/j/k;' failed
  12-06 09:40:36.039: E/dalvikvm(14657): Could not find class 'maps.j.k', referenced from method maps.y.ae.a
  12-06 09:40:36.039: W/dalvikvm(14657): VFY: unable to resolve new-instance 3571 (Lmaps/j/k;) in Lmaps/y/ae;
  12-06 09:40:36.039: D/dalvikvm(14657): VFY: replacing opcode 0x22 at 0x007d
  12-06 09:40:36.125: D/dalvikvm(14657): VFY: dead code 0x007f-008f in Lmaps/y/ae;.a (Landroid/view/LayoutInflater;Lcom/google/android/gms/maps/GoogleMapOptions;Z)Lmaps/y/ae;
  12-06 09:40:36.192: I/dalvikvm(14657): Could not find method java.io.IOException.<init>, referenced from method maps.bg.e.a
  12-06 09:40:36.195: W/dalvikvm(14657): VFY: unable to resolve direct method 14965: Ljava/io/IOException;.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
  12-06 09:40:36.195: D/dalvikvm(14657): VFY: replacing opcode 0x70 at 0x0087
  12-06 09:40:36.195: D/dalvikvm(14657): VFY: dead code 0x008a-008c in Lmaps/bg/e;.a ([B)Ljava/util/Hashtable;
  12-06 09:40:36.555: D/dalvikvm(14657): GC_FOR_MALLOC freed 4020 objects / 327288 bytes in 61ms
  12-06 09:40:36.707: E/Google Maps Android API(14657): Google Maps application is missing.

Редактировать: похоже, мы пока не можем запустить его на эмуляторе.


person meh    schedule 05.12.2012    source источник
comment
Вы должны установить Google Play Store на свой эмулятор. Посмотрите мой ответ на этот вопрос, я думаю, это может помочь stackoverflow.com/questions/13691943/   -  person Nemanja Kovacevic    schedule 06.12.2012


Ответы (6)


Logcat увидел следующее сообщение:

12-06 09:40:36.707: E/Google Maps Android API(14657): Google Maps application is missing.

Итак, установка Google Maps решил проблему.

Также похоже, что установка карт Google заблокирована в некоторых странах, и запуск приложения на 2.2 просто не будет работать без установленных карт Google.

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

Google Maps Android API V2 проверяет наличие GoogleMaps установлены на устройстве

person meh    schedule 06.12.2012
comment
Я задал аналогичный вопрос и написал пост о том, как программно проверить, установлены ли Google Maps, и перенаправить пользователя в Play Store, если Google Maps не установлены. См. этот вопрос: stackoverflow.com/questions/13778965/ - person DiscDev; 09.12.2012
comment
в моем случае приложение гугл карты не удалось установить напрямую из маркета. - person meh; 10.12.2012
comment
Это немного беспокоит: / Надеюсь, API PlayServices справится с этим! - person Chris.Jenkins; 10.12.2012
comment
Я тоже, но это не так. Установил последнюю версию, ничего не помогло. - person meh; 10.12.2012

Мне еще предстоит проверить это, но я предполагаю, что вам нужны сервисы Google Play на вашем устройстве, проверьте следующее на вашем устройстве:

приложение игровых сервисов

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

Судя по всему, GMS тихо выходит из строя на реальном устройстве, а не падает, как эмулятор.

Вручную установите Сервисы Google Play на ваше устройство и повторите попытку.

person Chris.Jenkins    schedule 05.12.2012

У меня была похожая проблема. После установки (а позже и удаления) Google Maps все наладилось.

person Goran    schedule 15.12.2012

Не забудьте включить вызов:

GooglePlayServicesUtil.getOpenSourceSoftwareLicenseInfo

где-то в вашем приложении (например, в разделе about). У меня была такая же проблема, пока я не использовал это.

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

person user1610177    schedule 03.01.2013
comment
Он используется для проверки доступности сервисов Google Play, проблема в том, что у пользователя могут быть не установлены карты Google на его устройстве. - person meh; 03.01.2013
comment
Заявление, которое я сделал выше, относится к тому, что Google ожидает от вас, чтобы указать в своем приложении, чтобы отдать должное их лицензиям. Без него моя реализация не работала. - person user1610177; 03.01.2013

У меня возникли те же проблемы с устройством Android 2.3.7, и ни один из ответов в Интернете не указывал мне правильное направление. На диких волосах я принудительно закрыл игровые сервисы и перезапустил свое приложение, и карты начали отображаться.

person user1976945    schedule 11.07.2013

Хорошим решением для эмулятора является Genymotion!
Загрузите его после входа в систему @ http://www.genymotion.com
Установите его и виртуальный ящик
В eclipse найдите http://plugins.genymotion.com/eclipse в «установить новое программное обеспечение».
Откройте с его помощью эмулятор, создайте виртуальное устройство с «приложениями google», установите на него сервис play и все, когда вы скомпилируете свой app, вы можете выбрать устройство эмуляции genymotion..
Это занимает много памяти, но работает действительно лучше, чем AVD ;-)

person Julien Sez'n    schedule 18.10.2013