Не грузит google maps api в приложении android. Как решить

Делал приложение на android с использованием API google maps. В debug версии все работало, на эмуляторе тоже. Карты грузились как надо. На реальном устройстве debug и release версии тоже отображали карты. Но потом после загрузки в маркет это приложение перестало отображать карты.

Как решить эту проблему — читайте в статье.

Описание проблемы

Карты грузятся и показываются как надо до загрузки в маркет. То есть, debug, release версии на реальных устройствах, эмуляторах и веб-страничках (для теста) показывают карту.

Если качаешь приложение с маркета — карты не грузятся. Хотя с тем же токеном гугл карт другие приложения работают.

Что я только не делал — выпускал обновления, делал другое приложение.

Причины почему не загружается api google maps

Я думал что это лимиты или защита по имени пакета. Google объявили, что при определенном количестве запросов пользование картами становится платным. Но у меня не было даже сотни запросов.

Количество запросов к гугл карте за неделю в моем приложении
Количество запросов к гугл карте за неделю в моем приложении

Искал пути решения, решил добавить карту (подойдет виртуальная). Потому что меня смущала надпись: «Before you begin: Before you start using the Maps SDK for Android, you need a project with a billing account and the Maps SDK for Android enabled. To learn more, see Get Started with Google Maps Platform.»

Списывают 1 доллар, спустя пару минут возвращают. Но это не решило проблему. Значит, причина в другом.

Вспоминаю, что я генерировал хеш для защиты по имени пакета. Чтобы не было предупреждения об уязвимости ключа.

Уведомление об уязвимости ключа в google maps api
Уведомление об уязвимости ключа в google maps api

Делал и для дебаг, и для релиз версий. Сверил ключи — все правильно. Решил отключить ограничения — и все заработало. Значит причина здесь.

Способы решения когда не грузятся карты гугл

А основной причиной стало то, что google подписывает своим сертификатом приложения при загрузке, если вы не отключили это. То есть поменялся сертификат и естественно хеш-сумма.

Нужно заново генерировать новый ключ и добавлять в ограничения в Настройках API Google Maps. Или просто отключить ограничения.

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

Если у вас была подобная проблема, напишите как вы ее решили.

  • Я хочу разработать навигационное приложение, типа «Найти мой автомобиль». Для навигации и карты я хочу использовать google maps api.Но вот думаю: Java против HTML5. Я больше знаком с Java, но в документации API Карт Google было бы легче разработать с помощью HTML5, не так ли?

Добавить комментарий для Dan Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *