Карты Google не отображаются в подписанном apk

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

Есть ли предложения по решению проблемы?

Ответ 1

Похоже, у вас есть только ключ API, введенный в debug google_maps_api.xml. Кроме того, похоже, что вы используете тот же ключ API для отладки и выпуска, но вам все равно нужно ввести его в google_maps_api.xml в папке выпуска, а также в папке отладки.

Это немного запутанно, потому что, когда проект находится в режиме Android, вы можете видеть только файл отладки (хотя в скобках рядом с ним в этом представлении должен быть (debug)).

Чтобы изменить версию выпуска, переключитесь в представление Project с помощью раскрывающегося списка в верхнем левом углу Project Explorer. Затем разверните app/src/, и вы увидите подпапки debug и release. В этом разделе вы должны увидеть два отдельных файла google_maps_api.xml под debug/res/values и release/res/values.

Убедитесь, что ключ API занесен в файл google_maps_api.xml в папке release/res/values, так как это тот, который будет использоваться для подписанной версии apk.

enter image description here

Ответ 2

Если вы выбрали Подписать Google Play App, то ваше приложение SHA-1 будет отличаться от того, когда оно будет выпущено.

Поскольку Google удаляет сертификат загрузки и подписывает ваше приложение с новым,

Итак, вам нужно знать новый ключ SHA-1.

(Вам не нужно следить за журналом для выпуска и отслеживать новый SHA-1)

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


Вы можете сравнить 2 SHA-1.

Ответ на исход

Ответ 3

вы используете версию sha1. вам нужно снова создать SHA1 с помощью командной строки после того, как вы подписались на apk.

Шаги по восстановлению SHA1 идут в cmd и дают команду, как показано ниже:

C:\Program Files\Java\jre1.8.0_91\bin>keytool -list -v -keystore 

"C:\Ваш путь к хранилищу ключей \keystores\android.jks"

1) перейдите в java в файл программы, открыв java-версию, например jre1.8.0

2) открыть папку bin и запустить команду, как указано выше, по пути вашего хранилища ключей, который вы создали при создании подписанного apk после выполнения этой команды на cmd вам необходимо указать пароль подписанного приложения, и ваш SHA1 будет передан.

3) скопируйте sha1 и вставьте в console.developer с вашим именем пакета внутри вашего ключа api.

Ответ 4

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

  • Создайте подписанный apk с новым файлом хранилища ключей, убедитесь, что вы создадите его в режиме выпуска
  • После создания подписанного apk вы должны указать путь хранилища ключей, в котором вы сохраняете файл хранилища ключей.
  • Вам также необходимо использовать ключ API карты google с вашим режимом деблокирования и режима отладки, вы можете использовать один и тот же ключ API с обоими, но убедитесь, что вы должны добавить два разных ключа шага для вашего одного ключа api на консоли Google.
  • Вы должны использовать путь к папке bin из java с диска c, потому что инструмент хранилища ключей находится внутри папки bin, поэтому предположим, что ваш файл похож на C:\Program Files\Java\jdk1.8.0_11\bin поэтому вы должны следовать этому пути к своему терминалу Android изменить путь к C:\Program Files\Java\jdk1.8.0_11\bin и затем введите следующую команду:

    keytool -list -v -keystore "/Users/NT/Desktop/generalkey.jks"(adress of your keystore file)
    
  • Теперь, сделав это, вы получите копию ключа ключа sha,

  • Перейдите в консоль Google/учетные данные
  • Теперь перейдите к своему api, и вы увидите, что опция редактирования переходила к редактированию и прохождению вашего ключа sha в нее и сохранила ее.
  • Запустите свой код.