Карты 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 в нее и сохранила ее.
- Запустите свой код.