Выпустить APK-файл, не отображающий карты Google

Я применил точные шаги, упомянутые в документации разработчика Google, чтобы создать пример проекта карты Google, и все прошло нормально на эмуляторе, но когда я сгенерировал файл apk проекта и запустил его на реальном устройстве, карта Google Samsung Galaxy S4 не отображается вверх он показывает только пустой фон с только что цветным логотипом Google, появляющимся в левом нижнем углу экрана !!

Я создал новый проект для карты Google. Я создал новый файл .jks для проекта и создал хранилище, ключ и псевдоним. Затем я извлек SHA1 из cmd java bin. Я перешел на dev.google.com/console, создал новый проект, затем включил карты Google. Затем API-интерфейс Android создал ключ API из учетных данных, вставил этот ключ API в google_maps_api.xml, в моем проекте обновленный выпуск signatureConfigs с указанием пути и псевдонима к файлу .jks и двух паролей. затем сгенерировал подписанный APK из Android Studio, затем перенес app-release.apk на реальное устройство, а затем установил ту же проблему, которая НЕ отображается на карте Google.


person user2985035    schedule 13.11.2015    source источник


Ответы (9)


Причина проблемы

Это произошло потому, что есть разные SHA1 в типах debug и release.

Решение этой проблемы

Добавьте SHA1 хранилища ключей, которое использовалось для создания release APK, в консоль Google.

Шаги:

  1. Получите путь к хранилищу ключей при создании подписанного APK

    Сборка ----> Создать подписанный APK ...

Сохранить путь к хранилищу ключей

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

Не забудьте указать Тип сборки --- release

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

  1. Извлеките SHA1 из хранилища ключей.

Откройте команду использования терминала ниже:

 keytool -list -v -keystore "/Users/NT/Desktop/generalkey.jks"

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

Измените путь на путь к вашему хранилищу ключей keytool -list -v -keystore "keystore path"

На отпечатках сертификатов вы увидите SHA1

  1. Создайте ключ Android, используя этот SHA1 и имя вашего пакета

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

Создайте APK с помощью хранилища ключей и наслаждайтесь своей картой

person Mina Fawzy    schedule 19.01.2016
comment
убедитесь, что вы получили Sha1 от используемого ключа для выпуска, и добавьте его в консоль gcm или firebase - person Mina Fawzy; 07.05.2018
comment
Последняя часть ответа мне непонятна. Сгенерируйте ключ Android, используя этот SHA1 ... Где мы должны создать этот ключ? Ключ API Google Android или хранилище ключей в Android Studio? Спасибо! - person Maseed; 15.08.2018
comment
На шаге 3 SHA1, извлеченный из хранилища ключей (шаг 2), необходимо добавить в Google Developers Console в разделе Credentials (console .developers.google.com). Ищите тот же google_maps_key из своего Android-проекта (google_maps_api.xml), он начинается с AIza. Затем щелкните по нему в консоли разработчика Google, затем добавьте дополнительный SHA1 из шага 2. Надеюсь, это поможет, сначала меня это смутило. - person Roj; 22.12.2018
comment
У меня также было включено подписывание приложений в консоли Google Play, поэтому я также добавил SHA1, который можно найти в консоли Google Play в разделе «Управление выпуском» - ›Подписание приложений. Я думаю, что на самом деле именно этот SHA1 заставил карты снова работать в моем приложении. stackoverflow.com/questions/46191073/ - person Roj; 22.12.2018
comment
действительно, если вы используете подписывание приложений в Google Play, вам нужно будет использовать сертификат подписи приложения, а не сертификат загрузки - person Leo Chen; 12.04.2019
comment
Я получаю только это: Certificate fingerprint (SHA-256): [value...]. Почему я не получаю SHA1? - person Jaime Montoya; 25.05.2019
comment
Единственное решение, которое сработало ???? - person coolcool1994; 14.02.2021

Это может быть глупо, но мой ключ API был включен в

app\src\debug\res\values\google_maps_api.xml (debug)

Вам также необходимо включить в-

app\src\release\res\values\google_maps_api.xml (release)

person Varun Kumar    schedule 26.08.2018
comment
И как мне это сделать? - person Gulshan Yadav; 25.07.2019

если кто-то все еще сталкивается с этой проблемой:

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

C: \ Users \ username \ AndroidStudioProjects \ yourapp \ app \ src \ debug \ res \ values, и вы найдете xml с вашим ключом api, например:

    <string name="google_maps_key" templateMergeStrategy="preserve" 
          translatable="false">AIza...etc</string>

но если вы проверите здесь:

C: \ Users \ username \ AndroidStudioProjects \ yourapp \ app \ src \ release \ res \ values ​​вы найдете xml, но без ключа api внутри, например:

     <string name="google_maps_key" templateMergeStrategy="preserve" 
         translatable="false">YOUR_KEY_HERE</string>

это было отмечено как комментарий внутри самого файла xml:

Перед выпуском приложения вам понадобится ключ API Карт Google.

To do this, you can either add your release key credentials to your existing
key, or create a new key.

Note that this file specifies the API key for the release build target.
If you have previously set up a key for the debug target with the debug signing certificate,
you will also need to set up a key for your release certificate.

Follow the directions here:

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

Once you have your key (it starts with "AIza"), replace the "google_maps_key"
string in this file.
person ehab    schedule 01.05.2019
comment
в src сейчас нет файла выпуска или отладки. Это устаревший ответ - person coolcool1994; 14.02.2021

Проверьте следующее:

  • Этот файл ниже должен быть как в отладке, так и в выпуске.

    app\src\debug\res\values\google_maps_api.xml (debug)
    

    Вам также необходимо включить в

    app\src\release\res\values\google_maps_api.xml (release)
    
  • Добавьте SHA1 для выпуска APK в Google Api Console.
    Вы можете получить ключ SHA1 в игровой консоли >> Подписание приложения >> Сертификат SHA1

person Govind Prajapati    schedule 26.08.2019

теперь Google подписал apk перед публикацией в магазине, поэтому перейдите в приложение google pushish ---> подписание приложения и добавьте подписанный ключ в консоль разработчика Google, вы должны добавить 3 ключа sha1: отладка, выпуск и новый ключ sha1 после pushlish

person Long Bui Duc    schedule 17.06.2017
comment
Добро пожаловать в SO. Прочтите как ответить и следуйте приведенным там рекомендациям, чтобы дать качественный ответ. - person thewaywewere; 17.06.2017

Еще один дополнительный шаг: в консоли разработчика Google Play добавьте отпечаток SHA1 для подписи приложения:  введите описание изображения здесь

person NELSON RODRIGUEZ    schedule 21.08.2019

Для отображения карты в релизной версии apk для Android разработчику необходимо добавить обновленный ключ SHA-1, созданный консолью Google Play после публикации приложения. Перейдите в раздел консоли «Подписание приложений» и найдите «Сертификат подписи приложения: отпечаток сертификата SHA-1». Скопируйте отпечаток пальца и вставьте его в консоль Google API, где разработчик создал ключ API Google для карты.

person Parita Dey    schedule 04.11.2019

для всех тех, кто пробовал все, но до сих пор не получил карту Google, чтобы появиться в версии выпуска, попробуйте сначала:

1- установите release.apk на свой телефон или эмулятор

2- откройте окно logcat и установите его на своем телефоне (при использовании эмулятора он установлен на нем по умолчанию)

3- откройте карту, и она показывает ошибку, как показано ниже, скопируйте ключ и вставьте тег значения ниже в файл манифеста:

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

фактический ключ из logcat

person narcis dpr    schedule 26.04.2021

У меня также была такая же проблема с картой, когда я делаю apk, сделайте apk в той же системе, в которой вы сделали ключ карты Google, тогда карта будет работать и отлично отображаться.

person Umair Khan    schedule 06.09.2019