web-dev-qa-db-fra.com

Google maps v2: échec de l'autorisation

Échec de l'autorisation. Veuillez consulter https://developers.google.com/maps/documentation/Android/start pour savoir comment configurer correctement la carte.

Assurez-vous que les éléments suivants correspondent à ceux de la console d'API: Nom du package: com.company.app, clé de l'API: AIzaSyC***OsTeo, empreinte digitale du certificat: 4E5285***6BF53ED3 Impossible de contacter les serveurs Google. Une autre tentative sera faite lorsque la connectivité sera établie.

Impossible de charger la carte. Erreur lors de la connexion aux serveurs Google. Ceci est probablement un problème d'authentification (mais pourrait être dû à des erreurs de réseau).


Je sais qu'il y a beaucoup plus de questions sur ce sujet… .. Mais je n'arrive pas à obtenir l'affichage des cartes. Le résultat est une vue de cartes vide (avec des boutons de zoom).

Ce que j'ai fait:
- Téléchargé/installé google-play-services
- Ajouté google-play-services.jar à libs/
- Activé Google Maps API v2 dans code.google.com/apis/console
- Configurer les autorisations correctes

Voici à quoi ressemble mon manifeste:

<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>

L’accès à l’API de la console API Google est le suivant:

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

Et du code (pour lequel je ne vois pas pourquoi cela entraînerait une erreur d'autorisation):

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

Comme vous pouvez le constater, une erreur s'est produite indiquant que le nom du package, la clé api et l'empreinte digitale du certificat ne correspondaient pas aux serveurs de Google. Mais comme j'écris ci-dessus, ces valeurs correspondent ...

28
basvk

Activez le service Google Maps Android API v2 dans le Google API's console. En outre, après avoir apporté des modifications, réinstallez complètement l'application sur le périphérique/l'émulateur.

78
Luksprog

Pour moi, aidez-le si c'est simple: Lorsque vous travaillez avec Android Studio, vous écrivez votre clé API Google dans le fichier google_maps_api.xml, mais Android Studio affiche uniquement le fichier de clé correspondant à la version (débogage) dans Project Manager. Vous devez placer votre clé 

\ app\src\release\res\values ​​\ google_maps_api.xml

fichier aussi (comme vous placez votre clé dans

\ app\src\debug\res\values ​​\ google_maps_api.xml

)

10
Iefimenko Ievgwn

Lorsque vous configurez votre clé d'API, le nom du package est la valeur de l'attribut package sur votre manifest, pas le nom de l'application.

Ce (com.foo):

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

Pas ceci (com.foo.MyApplication):

<application
    Android:name="com.foo.MyApplication"
8

J'ai eu le même problème, mais j'avais activé la bonne api. Le problème était que j'ai utilisé le mauvais fichier de clés lors de l'obtention de mon SHA1. J'ai utilisé le magasin de clés de publication, mais je devais utiliser:

keytool -list -v -keystore debug.keystore

sur ce fichier (emplacement mac osX):

~/.Android/debug.keystore

Cela m'a donné un autre sha1 que je suis entré dans la console de Google, et maintenant cela fonctionne.

4
Skullbox

Assurez-vous que le nom de votre package est correctement saisi dans console/identifiants/nom du package de Google. Il doit s'agir du nom de votre package supérieur d'application, par exemple. com.company.appname pas com.company.appname.ui.activity.maps. J'ai suivi les instructions de https://developers.google.com/maps/documentation/Android/start mais j'ai créé l'activité dans un package imbriqué. La page Web Google a entré le nom du paquet imbriqué et j'ai eu cette erreur.

2
rojarand2

Assurez-vous que les choses suivantes: 

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

Pour obtenir votre clé SHA1, vous pouvez utiliser: la commande suivante Cette commande va générer le keystore

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

Cette commande donne la clé SHA1 et d'autres informations

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

: Vos clés dans la balise <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" />

Autorisation en dehors de la balise <application> </application>, en haut

<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" />

REMARQUE: N'exécutez pas l'application à l'aide d'Eclipse ou d'un émulateur, exécutez-le dans un périphérique réel en créant un apk n'utilisant pas Eclipse sinon prendrait une clé de débogage incorrecte.

VkJ

2
Vinod Joshi

Pour que ce soit clair. Si l'activité de la carte s'affiche sans erreur lors du débogage de votre application sur le sdk Android, elle n'affiche rien et donne cette erreur lorsque vous installez l'apk: 

07-02 03: 18: 36.467 25914-26028 /? API Android E/Google Maps: échec de l'autorisation. S'il te plait regarde https://developers.google.com/maps/documentation/Android-api/start pour comment configurer correctement la carte. 07-02 03: 18: 36.470 25914-26028 /? API Android E/Google Maps: dans la console pour développeurs de Google ( https://console.developers.google.com ) Assurez-vous que "Google Maps Android API v2" est activé . Assurez-vous que la clé Android suivante existe: Clé API: YOUR_KEY_HERE Application Android (;):

La solution sera: En plaçant votre clé dans:\app\src\version\res\values ​​\ google_maps_api.xml

en tant que diid dans:\app\src\debug\res\values ​​\ google_maps_api.xml

comme mentionné ici

1
Essam Mahdy

Je n'ai aucune preuve de cela en dehors de mon observation, mais il semble que cela puisse prendre quelques minutes avant que la clé API soit active une fois qu'elle est configurée.

Un peu de patience a semblé fonctionner pour moi!

1
Blueberry