it-swarm.com.ru

Google Maps V2 не работает в производстве с правильным ключом

У меня большие проблемы с работой Google Maps в приложении Android. Это то, что я сейчас получаю (дно - только реклама).

App production screen

Ключевые шаги, которые я выполнил:

1) Я убедился, что получил правильный производственный ключ SHA1 и внедрил его в API консоли Google, а также в приложении (ключ, который дает Google). Я зарегистрировал два ключа - один для отладки и один для производства

2) Интернет, местоположение и т.д. Работает

3) Приложение работает в режиме отладки, но не работает, если подписано и установлено на устройство через USB. Я трижды проверил подпись SHA 1 знака и т.д.

4) MapsFragment взят из шаблона, доступного в Android Studio.

В производственном режиме журнал cat отображает это:

01-11 16:04:54.511  19346-19437/com.mike.mapstest E/Google Maps Android API﹕ Authorization failure.  Please see https://developers.google.com/maps/documentation/Android/start for how to correctly set up the map.
01-11 16:04:54.516  19346-19437/com.mike.mapstest E/Google Maps Android API﹕ In the Google Developer Console (https://console.developers.google.com)
    Ensure that the "Google Maps Android API v2" is enabled.
    Ensure that the following Android Key exists:
    API Key: YOUR_KEY_HERE
    Android Application (<cert_fingerprint>;<package_name>): <SHA1 Removed for this> ;com.mike.mapstest

Эта ошибка, очевидно, говорит, что что-то не так с моей аутентификацией? Что я делаю неправильно?

28
ForeverLearning

Основываясь на выводе logcat из вашей сборки отладочной версии:

01-11 16:04:54.511  19346-19437/com.mike.mapstest E/Google Maps Android API﹕ Authorization failure.  Please see https://developers.google.com/maps/documentation/Android/start for how to correctly set up the map.
01-11 16:04:54.516  19346-19437/com.mike.mapstest E/Google Maps Android API﹕ In the Google Developer Console (https://console.developers.google.com)
    Ensure that the "Google Maps Android API v2" is enabled.
    Ensure that the following Android Key exists:
    API Key: YOUR_KEY_HERE
    Android Application (<cert_fingerprint>;<package_name>): <SHA1 Removed for this> ;com.mike.mapstest

может показаться, что вы не переопределили местозаполнитель ключа api YOUR_KEY_HERE в манифесте (или отдельный файл ключей api, в зависимости от вашей конфигурации). Замените эту строку, где бы она ни находилась, вашим фактическим ключом, и вам будет хорошо идти.

Правка: это руководство , если оно соответствует вашей конфигурации, вероятно, объясняет, почему вы видите это только для релизных сборок:

Вернитесь в Android Studio и вставьте ключ API в раздел файла YOUR_KEY_HERE:

Обратите внимание, что эти шаги включили поддержку Google Maps для отладочной версии пакета приложения. Ключ API также необходимо добавить в файл google_maps_api.xml, расположенный в значениях MapDemo -> app -> src -> release -> res ->, когда готовая к выпуску версия приложения будет готова к сборке.

37
stkent

У меня были те же проблемы, и я несколько дней бился головой о стену. Я прочитал все сообщения о том, как поставить правильный ключ на место. Я продолжал вставлять правильный ключ в мой файл google_maps_api.xml. StKent выше упомянул, чтобы удостовериться, что он перезаписан реальной строкой в ​​AndroidManifest.xml. Это то, что исправило это для меня.

Что у меня было, когда оно не работало: В AndroidManifest.xml:

<meta-data
            Android:name="com.google.Android.geo.API_KEY"
            Android:value="@string/google_maps_key" />

и в google_maps_api.xml:

 <string name="google_maps_key"
        templateMergeStrategy="preserve"
        translatable="false">AIza_the actual key</string>

То, что я изменил, чтобы он работал Я изменил свой AndroidManifest.xml, чтобы включить:

<meta-data
            Android:name="com.google.Android.geo.API_KEY"
            Android:value="AIzsa_the actual key" />
8
Chris Toews

При использовании Android Studio для генерации Google Maps Activity, он игнорирует ваши настройки сборки сборки и использует debug.keystore по умолчанию. SHA1 в google_maps_api.xml основан на этом значении по умолчанию. Создавая разрешение в консоли API Google, убедитесь, что вы используете свой продукт и отлаживаете SHA1, если вы используете не по умолчанию.

4
Steve Tauber

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

вы можете получить больше информации https://developers.google.com/maps/documentation/Android/start

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

keytool -list -v -keystore ~ ​​/ .Android/debug.keystore -alias androiddebugkey -storepass Android -keypass your_app_password

чтобы увидеть больше 

SHA-1 отпечаток сертификата хранилища ключей

или вы можете использовать инструмент Eclipse для генерации частного ключа SHA1 с помощью меню экспорта

3
Mohammod Hossain

В моем случае серый экран был вызван наличием пользовательской реализации HostnameVerifier, которая препятствовала загрузке плиток. 

Надеюсь, что это поможет кому-то еще в будущем. 

0
Adrian C.

Решив, я поместил в манифест «Ключ для приложений браузера (с реферерами)» вместо «Ключ для приложений Android (с сертификатами)» из консоли API Google

0
Kodanda Devarakonda

В моем случае я ввел неправильное имя пакета в Google API API Manager - Credentials - «Ограничить использование ваших приложений Android». Убедитесь, что вы ввели правильное имя пакета (как в AndroidManifest.xml) и правильные SHA отпечатки пальцев (для отладки и производства).  Google API Manager Screenshot

0
stefan.m