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

Google maps v2: сбой авторизации

Ошибка авторизации. Для правильной настройки карты см. https://developers.google.com/maps/documentation/android/start.

Убедитесь, что следующее соответствует API-консоли: Имя пакета: com.company.app, Ключ API: AIzaSyC***OsTeo, Отпечаток сертификата: 4E5285***6BF53ED3 Не удалось связаться с серверами Google. Другая попытка будет сделана при установлении соединения.

Не удалось загрузить карту. Ошибка при обращении к серверам Google. Вероятно, это проблема аутентификации (но может быть из-за сетевых ошибок).


Я знаю, что вопросов по этому вопросу достаточно много. Но я просто не могу заставить просматривать карты. Результатом является пустая карта (с кнопками масштабирования).

Что я сделал:
- Загруженные/установленные google-play-сервисы
- Добавлен google-play-services.jar в libs/
- Включено Google Maps API v2 в code.google.com/apis/console
- Настройте правильные разрешения

Вот как выглядит мой манифест:

<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<permission
    android:name="com.company.app.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

<uses-permission android:name="com.company.app.permission.MAPS_RECEIVE" />

<application ...>
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="AIzaSyC***OsTeo" />
</application>

Доступ к API-интерфейсу API API API выглядит следующим образом:

Key for Android apps (with certificates)
API key:        AIzaSyC***OsTeo
Android apps:   4E:52:85:***6B:F5:3E:D3;com.company.app
Activated on:   Jun 18, 2013 11:07 PM
Activated by:   [email protected] – you

И некоторый код (который я не вижу, почему это приведет к ошибке авторизации):

FragmentManager fragmentManager = super.getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
SupportMapFragment fragment = new SupportMapFragment();
fragmentTransaction.replace(R.id.mapContainer, fragment);
fragmentTransaction.commit();

Как вы можете видеть, я получаю сообщение об ошибке, указывающее, что имя пакета, ключ api и отпечаток сертификата не соответствуют серверам google. Но, как я пишу выше, эти значения соответствуют...

4b9b3361

Ответ 1

Активируйте услугу Google Maps Android API v2 в Google API console. Кроме того, после внесения изменений выполните полную переустановку приложения на устройстве/эмуляторе.

Ответ 2

Когда вы настраиваете свой ключ API, имя пакета является значением атрибута package на вашем manifest, а не именем приложения.

Это (com.foo):

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.foo"

Не это (com.foo.MyApplication):

<application
    android:name="com.foo.MyApplication"

Ответ 3

Для меня это поможет, если просто: Когда вы работаете в Android Studio, вы пишете свой ключ API Google в файле google_maps_api.xml, но Android Studio покажет вам только ключевой файл для (отладочной) версии в Project Manager. Вам нужно разместить свой ключ в

\ приложение\SRC\релиз\рес\значения\google_maps_api.xml

также (например, вы помещаете свой ключ в

\ приложение\SRC\Debug\Рез\значения\google_maps_api.xml

)

Ответ 4

У меня была та же проблема, но активировал правильный api. Проблема заключалась в том, что я использовал неправильный файл хранилища ключей при получении моего SHA1. Я использовал хранилище ключей выпуска, вместо этого мне нужно было использовать:

keytool -list -v -keystore debug.keystore

в этом файле (местоположение mac osX):

~/.android/debug.keystore

Это дало мне еще один sha1, который я ввел в консоль Google, и теперь он работает.

Ответ 5

Пожалуйста, убедитесь, что имя вашего пакета правильно введено в консоли разработчика/учетные данные/имя пакета. Это должно быть ваше имя верхнего пакета приложения, например. com.company.appname не com.company.appname.ui.activity.maps. Я выполнил инструкции https://developers.google.com/maps/documentation/android/start, но создал Activity во вложенном пакете. На веб-странице Google введено имя вложенного пакета, и у меня была эта ошибка.

Ответ 6

Удостоверьтесь в следующих вещах:

https://code.google.com/apis/console/?noredirect
Click on Services(Left side panel) -> Enable Google Maps Android API v2

Чтобы получить ключ SHA1, вы можете использовать следующую команду:   Эта команда будет генерировать keystore

keytool -genkey -v -keystore GoogleMapV2.keystore -alias GoogleMapV2 -keyalg RSA -    keysize 2048 -validity 10000

Эта команда дает ключ SHA1 и другую информацию

keytool -list -v -keystore ~/path/to/GoogleMapV2.keystore -alias GoogleMapV2 -storepass any-password -keypass any-password i.e :

68:1C:74:24:7B:1F:9C:71:76:DD:69:4F:F2:8F

: ваши ключи внутри тега <application> </application>

<meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="YOUR KEY" />
<meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

Разрешение вне тега <application> </application>, сверху

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <!--
     The following two permissions are not required to use
     Google Maps Android API v2, but are recommended.
    -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

Примечание:   Не запускайте приложение с помощью Eclipse или эмулятора, запустите в реальном устройстве, создав   apk, не использующий eclipse else, принимает неверный ключ отладки.

VkJ

Ответ 7

У меня нет никаких доказательств этого отдельно от моего наблюдения, но похоже, что может потребоваться несколько минут, прежде чем ключ API будет активен после его настройки.

Немного терпения, казалось, сработало для меня!