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

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

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

App production screen

Основные шаги, которые я выполнил:

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

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

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

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

В режиме производства лог-код отображает это:

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

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

4b9b3361

Ответ 1

На основе вывода 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 → , когда готов к выпуску версия приложения.

Ответ 2

У меня были такие же проблемы, и я несколько дней стучал головой о стену. Я прочитал все сообщения о том, чтобы ввести правильный ключ. Я поместил правильный ключ в свой файл 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" />

Ответ 3

Отладка и производственный ключ будут разными. Если вы используете отладочный ключ для режима выпуска, вы не можете просмотреть карту 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 с помощью меню экспорта

Ответ 4

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

Ответ 5

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

Ответ 6

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