web-dev-qa-db-fra.com

Google map a signé des erreurs de clé api dans Android

Lorsque je suis passé de ma clé de carte de débogage à ma clé de carte signée, mes cartes cessent de fonctionner. J'obtiens les erreurs suivantes dans logcat:

09-03 18:18:04.112: WARN/System.err(4073): IOException processing: 26
09-03 18:18:04.112: WARN/System.err(4073): Java.io.IOException: Server returned: 3
09-03 18:18:04.112: WARN/System.err(4073):     at Android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.Java:115)
09-03 18:18:04.112: WARN/System.err(4073):     at Android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.Java:1473)
09-03 18:18:04.112: WARN/System.err(4073):     at Android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.Java:1117)
09-03 18:18:04.112: WARN/System.err(4073):     at Android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.Java:994)
09-03 18:18:04.112: WARN/System.err(4073):     at Android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.Java:1702)
09-03 18:18:04.112: WARN/System.err(4073):     at Java.lang.Thread.run(Thread.Java:1019)

J'ai tout vérifié, les autorisations et la bibliothèque sont en place. J'ai recréé la clé chantée et pas de chance.

Des idées?

61
Jen

J'ai eu le même problème et j'ai pensé qu'il n'y avait pas de réponse utile sur Internet, alors j'espère que cela devrait aider tout le monde à l'avenir.

Lors de l'utilisation de GoogleMaps for Android, vous avez besoin de deux clés - débogage et libération.

La clé de "débogage" est une sorte de terme trompeur. Cette clé doit également être utilisée lorsque vous développez l'application dans Eclipse. Donc, essentiellement, utilisez la clé de débogage pour le développement, les tests, le débogage.

Lorsque vous êtes prêt à lancer l'application sur Market, définissez Android:debuggable="false" dans le AndroidManifest.xml et utilisez la clé API signée.

Lorsque vous utilisez la clé API signée, le MapView s'affichera UNIQUEMENT lorsque l'application sera installée à partir du Android Market. Ainsi, l'installation de l'application à partir de Eclipse (Exécuter en tant que, déboguer en tant que, etc.) ou en ligne de commande (adb install) n'affichera pas le MapView. Soyez assuré, une fois que l'application est sur le marché - vous la téléchargez et le MapView apparaîtra.

Avec la clé API signée, si vous déployez l'application à partir d'Eclise, vous obtiendrez un "serveur renvoyé 3, exception IOProcessing 26" comme avertissement - ignorez-le simplement.

Remarque: Assurez-vous également qu'il n'y a pas d'instances en double du même MapView. Si votre application nécessite "x" non. de MapViews, générez "x" no. de nouvelles clés signées (une pour chaque MapView), car GoogleMaps a une limite de requête pour une seule instance MapView.

Pour obtenir les deux clés, suivez les étapes pour Obtention des clés API pour GoogleMaps sur Android .

Codage heureux!

MISE À JOUR:

Le lien ci-dessus pour obtenir des clés api est désormais une procédure obsolète. Reportez-vous Obtention des clés d'API pour GoogleMaps Android API v2 à l'avenir.

81
Sagar Hatekar

Enfin, c'est fixe.

J'utilise une machine Windows, je suis donc simplement allé sur C:\Users\rohit\.Android et supprimé debug.keystore et default.keyset1 une fois cela fait, je suis allé sur Eclipse et j'ai appliqué une build propre à mon projet et c'est fait!

3
Rohit Mandiwal

La clé de carte signée est utilisée pour l'application de publication. Vous obtiendrez donc de telles informations. si vous déboguez l'application via USB connecté avec une clé de carte signée. Revenez à la clé de carte de débogage si vous souhaitez déboguer l'application et remplacez-la par une clé de carte signée avant de publier une mise à jour ou une nouvelle version.

2
sma

J'ai eu le même problème. Dans mon cas, je me trompais. J'écrivais la commande keytool comme ceci:

keytool -list -keystore debug.keystore ...

au lieu de:

keytool -list -keystore ~\.Android\debug.keystore ...

Je ne mettais donc pas à jour le fichier de clés d'Eclipse avec mon empreinte digitale.

J'espère que ça aidera quelqu'un :)

2
Estrella

une dernière chose: après avoir ajouté -v, vous devez vous rappeler que l'API Google n'a besoin que de MD5 et non SHA1.Veuillez donc vérifier le code que vous donnez à Google.

1
fly84021210

Si vous utilisez une clé de débogage que quelqu'un d'autre a générée et fournie, c'est la raison de la carte vierge à l'exception suivante.

Java.io.IOException: Server returned: 3

Vous pouvez utiliser ce lien pour obtenir une clé API: Register

1
Prasad Korhale

Je viens de rencontrer exactement le même problème.

Il n'y a pas de code écrit par l'utilisateur qui lève l'exception: il est généré dans le logcat Eclipse et le résultat est que vous ne voyez aucune des tuiles Google map. Comme Jen, j'ai régénéré la clé, en vain.

La plate-forme est Android 3.2, l'appareil est l'Asus Transformer, la connexion est le WiFi.

Pour info mon Android 2.2 fonctionne très bien, récupérer la carte sur un Droid sur 3G.

Voici la solution à mon problème, j'espère que cela aide Jen:

Dans mon cas, si j'installe la version finale sur le Transformer à l'aide de l'icône Eclipse "Debug as", avec le Transformer connecté par USB, la carte échoue comme décrit ci-dessus (pour info, c'est une procédure que j'ai utilisée avec succès plusieurs fois avec = Android 2.2 et autres appareils).

J'ai donc essayé ceci à la place: j'utilise l'option Fichier Eclipse | Exporter ... pour créer un fichier APK de version, puis installer ce fichier APK sur le Transformer à l'aide de son application Asus Sync. Tout va bien. Les tuiles de la carte apparaissent.

1
CJ Villa

Pour les pauvres âmes qui ont essayé de construire l'exemple de carte à partir d'extras sdk: dès que j'ai renommé le package de com.example.mapdemo en com.mynmae.mapdemo, la carte est apparue comme par magie. Oui, j'ai perdu une heure à chercher et à essayer et il a silencieusement rejeté le nom du package.

0
denispyr

J'ai la même question mais je pense avoir trouvé la réponse!

  1. Décidez de suivre ces étapes https://developers.google.com/Android/maps-api-signup et recevez l'empreinte MD5 de votre certificat
  2. Alors que le développement, si la carte n'est pas affichée, ne vous inquiétez pas! Extrait simple APK utiliser Android outils avec outil clé qui est utilisé dans la première étape et utiliser ce fichier APK pour installer sur votre téléphone, vous verrez MapView

Quoi qu'il en soit, pendant le temps de développement, vous ne voyez peut-être pas MapView, mais ce n'est pas un problème et ne vous inquiétez pas! Attendez simplement lorsque l'application est terminée et créez avec votre magasin de clés et vous verrez la carte s'afficher correctement

0
khaintt