Подтвердить что ты не робот

Google maps v2 не отображается

Я пытаюсь запустить образец проекта нового Google maps V2 API

И отображается пустой экран. enter image description here

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

  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.

Изменить: Ну, похоже, мы еще не можем запустить его на эмуляторе.

4b9b3361

Ответ 1

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 на устройстве

Ответ 2

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

play services app

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

По внешнему виду GMS не работает на реальном устройстве, а не сбой, как эмулятор.

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

Ответ 3

У меня была схожая проблема. После установки (и последующей деинсталляции) Карт Google все успокоилось.

Ответ 4

Обязательно включите вызов:

GooglePlayServicesUtil.getOpenSourceSoftwareLicenseInfo

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

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

Ответ 5

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

Ответ 6

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