Ключ API Карт Google в сборке выпуска не работает

В настоящее время я разрабатываю приложение для Android и использую Google Maps API. В консоли разработчика я добавил печать сертификата SHA1, а затем имя своего пакета. Несмотря на то, что я распечатал этот сертификат SHA1 с помощью keytool, я не могу получить доступ к картам. Я много искал, но все темы приводили меня к ответам, в которых ошибка была связана с неправильным ключом API в консоли разработчика. Но я взял правильный SHA1, тот из моего сертификата.

Заранее спасибо !


person Alexandre Daubois    schedule 05.08.2015    source источник
comment
Вы упомянули ключ Android в файле манифеста?   -  person Rahul Chaudhary    schedule 05.08.2015


Ответы (5)


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

<meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="KEY GOES HERE"/>

Я уверен, что вы читали документацию по этому вопросу, но убедитесь, что вы точно следуете инструкциям для сертификата выпуска.

https://developers.google.com/maps/documentation/android/signup

Вы также можете перейти по ссылке, созданной для вас в файле google_maps_api.xml. Это автоматизирует процесс ввода ключа в консоль разработчика. Однако убедитесь, что вы все еще добавляете это значение метаданных в свой манифест.

person Andrew Brooke    schedule 05.08.2015
comment
Спасибо! Я внес изменения и заметил, что когда я создавал свою операцию Google Maps, было два места, где хранится ключ API. Один файл для выпуска, а другой - для отладки. Убедитесь, что ключ указан в этих двух файлах! - person Alexandre Daubois; 05.08.2015
comment
Я искал эти два файла, они просто в src / debug / res / values ​​/ google_maps_api.xml и src / release / res / values ​​/ google_maps_api.xml - person Keiichi; 27.10.2015

Моя карта в режиме выпуска отображалась, но после публикации в Play Store она не отображалась.

Я упомянул как ключ отладки, так и сертификат выпуска SHA-1 для консоли разработчика Google, но карта в режиме выпуска после загрузки приложения из магазина воспроизведения все еще не отображалась.

Вот в чем проблема: для этого приложения включена функция подписи приложений Google Play

Перейдите к управлению выпуском - ›Подписание приложений -› и скопируйте отпечаток сертификата SHA-1 из сертификата подписи приложения.

введите описание изображения здесь

Вставьте этот недавно скопированный отпечаток SHA-1 в консоль разработчика, и отобразится карта в режиме выпуска.

person Noor Ali Butt    schedule 26.09.2017
comment
Я застрял на этом 3 дня! Большое спасибо, нигде в документации я не видел проиллюстрированного этого шага. - person ngatirauks; 14.05.2018
comment
Я использовал keytool для получения SHA-1 с терминала в Android Studio, но карта все еще не работала с этим SHA-1. Спасибо за это! Похоже, что release SHA-1 из Android Studio отличался от того, который был в консоли Google Play. - person David A; 12.06.2018
comment
Я тоже застрял в этом на несколько дней. Спасибо! Хэш в Play Console явно отличался от хеша в keytool командной строки. Keytool показывал сертификат загрузки. - person Dennis Calla; 15.08.2018
comment
очень обидно, что описания для app signing key и upload key в основном одинаковы - person lasec0203; 29.04.2021

Файл google_maps_api.xml должен находиться в разделах res / debug / и res / release. Редактор показывает только вашу текущую конфигурацию запуска, которая по умолчанию является отладочной и может ввести в заблуждение, если вы не заметите (отладочную) заметку после имени папки. Скопируйте файл google_maps_api.xml в обе папки и отредактируйте, убедитесь, что у них есть правильные ключи API для каждой сборки.

person Vishwa Kiran    schedule 25.05.2016
comment
Как ключ API должен работать с отладкой? Вы подписываете свои отладочные сборки? Я никогда не слышал, чтобы кто-то делал это ... - person The incredible Jan; 23.03.2018

Android Studio также создает TODO в папке выпуска для xml-файла google_maps_api и сообщает вам о необходимой процедуре перед выпуском. Также, пожалуйста, не меняйте ключ в манифесте вручную. Когда вы переключаетесь на вариант выпуска, ключ автоматически обновляется в манифесте.

В любом случае сделайте это,

  1. Перейдите по ссылке, упомянутой @Andrew Brook

  2. Нажмите «Получить ключ» и продолжите

  3. Либо создайте новый проект, либо используйте существующий
  4. Укажите параметры и нажмите кнопку
  5. Если вы уже сделали это раньше, например, для отладки, перейдите в раздел Создание нового ключа api Изображение здесь
  6. Добавьте необходимое имя, нажмите «Добавить имя пакета и отпечаток пальца»
  7. Добавьте имя пакета вашего приложения и ключ SHA-1 (сгенерируйте его с помощью keytool в java / jdk ../ bin /) Изображение здесь
  8. Вы получаете ключ API «релизного» варианта, который будет добавлен в файл google_maps_api.xml в папке выпуска.
person Vikramaditya Kukreja    schedule 25.07.2016

Вы должны включить ключ SHA в консоли разработчика Google, чтобы при первом переходе к выпуску Management получить ключ SHA вашего приложения (первый), затем перейдите по этой ссылке

 https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=(Your SHA KEY)%3B(YOUR PACKAGE NAME)

Теперь он включит API. теперь обновите свое приложение новым ключом. Это будет работать .

person Tasnuva oshin    schedule 02.08.2019