Подтвердить что ты не робот

Android SHA1 освобождает хранилище ключей, не работающих с Google Maps

Я использую API Google Maps для Android, и у меня возникают некоторые проблемы.

Я подписываю свой apk с андроид-студией (создаем его на .android/keystore.jks). Также я выбираю "release" как тип в нем. Я использовал команду

keytool -list -v -keystore C:\Users\Toshiba\.android\keystore.jks

чтобы получить отпечаток SHA1 из хранилища ключей.

SHA1 верен, но карта не показана в подписанном APK. Он показан в отладочной APK.

Использование keytool с хранилищем ключей (keystore.jks) поможет мне:

 SHA1: 33:46:07:82:5B:D4:45:D2:60:CE:5A:29:97:9F:6C:44:XX:XX:XX:XX

Отладка работает отлично (я добавил 2 в консоль API в Google)

33:46:07:82:5B:D4:45:D2:60:CE:5A:29:97:9F:6C:44:XX:XX:XX:XX;yac.breakingpoint
7C:28:61:5B:C3:4A:5C:50:44:AA:FD:58:69:E9:70:91:XX:XX:XX:XX;yac.breakingpoint

XX затемняется.

Keytool говорит, что использует SHA256withRSA как алгоритм подписи как для отладки, так и для хранилища ключей.

Что я делаю неправильно?

UPDATE Итак, я пробовал новый ключ API, очищал проект и перестраивал его, новое хранилище ключей - все еще не работало над выпуском... debug is fine!

ОБНОВЛЕНИЕ 2 Все еще не найдено рабочего решения... Помогите мне!

ОБНОВЛЕНИЕ 3. Все верно, он работает с использованием подписанного APK с отладкой типа сборки. Извлеките CERT.RSA и запустили keytool -printcert -file ./CERT.SA. Получил тот же результат, что и для типа сборки выпуска. В выпуске он не работает!

ОБНОВЛЕНИЕ 4 Вот еще одна попытка, которую я сделал:

  • Создан новый репозиторий GIT, который ему поручен.
  • Папки /build не выполняются, поскольку они находятся в файлах .gitignore.
  • Создал новый ключ API в консоли API и добавил к нему только клавишу release SHA1.
  • Добавил этот API-ключ к приложению и полностью очистился при восстановлении.
  • Сгенерирован новый подписанный файл APK

Это не сработало.

ОБНОВЛЕНИЕ 5 Один мой друг попытался воспроизвести эту проблему. У него такая же проблема при работе с андроид-студией. Вероятно, ошибка студии Android?

4b9b3361

Ответ 1

У вас есть два файла google_maps_api.xml

Один в этой папке:

app/src/ отладка/res/values ​​

Другое в этой папке:

приложение/SRC/ релиз/RES/значения

Но только отладочный, вероятно, содержит ваш ключ API.

Ответ 2

1) Обычно вам нужно очистить и перестроить проект, чтобы он мог работать.

2) Убедитесь, что ваш вариант сборки находится в выпуске (Android Studio дружелюбен в этом)

3) Также, если вы отлаживаете свои устройства, сначала полностью удаляете их, а затем продолжайте.

4) Как говорится в documentation, убедитесь, что вы правильно настроили свой манифест.

Надеюсь, что это поможет.

Ответ 3

SHA1, который вы используете в настоящее время для целей отладки.

Поэтому, когда вы создаете подписанный apk, у вас есть один файл kestore. попробуйте создать новый ключ SHA1 с этим новым файлом keaystore.

затем используя этот файл хранилища ключей создайте ключ API для подписанного apk с консоли Google.

заменить ключ API отладки, уже сохраненный в файле манифеста с новым.

Он будет работать

спасибо

Ответ 4

Создайте новый проект в Android Studio с помощью Google map Activity. После того, как проект автоматически создает SHA1 в манифесте. Используйте этот SHA1 для получения ключа MAP api. Проверьте свое приложение, убедитесь, что оно работает. И после того, как вы создали приложение, какой проект.

Ответ 5

Вам также необходимо добавить SHA-1, созданный сертификатом подписи Google App.

После публикации приложения вы можете найти его в консоли Google Play → Инструменты разработки → Управление релизами → Подписание приложения → Сертификат подписи приложения.

Подробнее об этом здесь: API Google Places for Android не работает в приложении из Play Store