Ответ 1
У вас есть два файла google_maps_api.xml
Один в этой папке:
app/src/ отладка/res/values
Другое в этой папке:
приложение/SRC/ релиз/RES/значения
Но только отладочный, вероятно, содержит ваш ключ API.
Я использую 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 Вот еще одна попытка, которую я сделал:
/build
не выполняются, поскольку они находятся в файлах .gitignore
.Это не сработало.
ОБНОВЛЕНИЕ 5 Один мой друг попытался воспроизвести эту проблему. У него такая же проблема при работе с андроид-студией. Вероятно, ошибка студии Android?
У вас есть два файла google_maps_api.xml
Один в этой папке:
app/src/ отладка/res/values
Другое в этой папке:
приложение/SRC/ релиз/RES/значения
Но только отладочный, вероятно, содержит ваш ключ API.
1) Обычно вам нужно очистить и перестроить проект, чтобы он мог работать.
2) Убедитесь, что ваш вариант сборки находится в выпуске (Android Studio дружелюбен в этом)
3) Также, если вы отлаживаете свои устройства, сначала полностью удаляете их, а затем продолжайте.
4) Как говорится в documentation, убедитесь, что вы правильно настроили свой манифест.
Надеюсь, что это поможет.
SHA1, который вы используете в настоящее время для целей отладки.
Поэтому, когда вы создаете подписанный apk, у вас есть один файл kestore. попробуйте создать новый ключ SHA1 с этим новым файлом keaystore.
затем используя этот файл хранилища ключей создайте ключ API для подписанного apk с консоли Google.
заменить ключ API отладки, уже сохраненный в файле манифеста с новым.
Он будет работать
спасибо
Создайте новый проект в Android Studio с помощью Google map Activity. После того, как проект автоматически создает SHA1 в манифесте. Используйте этот SHA1 для получения ключа MAP api. Проверьте свое приложение, убедитесь, что оно работает. И после того, как вы создали приложение, какой проект.
Вам также необходимо добавить SHA-1, созданный сертификатом подписи Google App.
После публикации приложения вы можете найти его в консоли Google Play → Инструменты разработки → Управление релизами → Подписание приложения → Сертификат подписи приложения.
Подробнее об этом здесь: API Google Places for Android не работает в приложении из Play Store