2010-01-01 7 views
11

Je suis en train de mettre en œuvre l'exemple MapView qui est défini dans Android Bonjour Vues exemple, mais maintenant je suis face à cette erreur:Android - Impossible de trouver des informations de fournisseur pour com.google.settings dans MapView Exemple

Failed to find provider info for com.google.settings 

Une idée de pourquoi cela se passe-t-il?

+0

Salut! Quelle version de SDK vous utilisez? –

+2

Je reçois ceci sur l'émulateur, mais cela ne semble rien affecter. –

Répondre

0

Tout examen Hello, MapView:

Assurez-vous que vous avez inclus dans AndroidManifest.xml ligne pour les autorisations:

<uses-permission android:name="android.permission.INTERNET" /> 

Aussi, avez-vous Google Map API Key?
le mettre dans la définition de mise en page MapView:

<com.google.android.maps.MapView 
    android:id="@+id/mapview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:clickable="true" 
    android:apiKey="Your Maps API Key" 
/> 

Autre mention d'erreur: GGroups - MapView showing as black screen after upgrade to 1.5

14

L'exemple MapView ne touche API pas définie par défaut. Donc vous devez le définir. Voici, étape par étape:

  1. Obtenez MD5 de votre système

    %JAVA_HOME%\bin\keytool.exe -list -alias androiddebugkey -keystore "%userprofile%\.android\debug.keystore" -storepass android -keypass android 
    
  2. Obtenir une clé API en collant le MD5 généré à cette page:
    http://code.google.com/android/maps-api-signup.html

  3. coller l'API générée clé à {votre_projet_root} /res/layout/map.xml

    <com.google.android.maps.MapView 
        android:id="@+id/myMapView" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:enabled="true" 
        android:clickable="true" 
        android:apiKey="paste_generated_api_key_here" 
    /> 
    
  4. Dans AndroidManifest.xml, assurez-vous que vous avez la balise folowing dans votre tag application:

    <uses-library android:name="com.google.android.maps" /> 
    

    et aussi la balise folowing dans votre tag manifest:

    <uses-permission android:name="android.permission.INTERNET" /> 
    
  5. Actualisez votre projet et exécutez

Note:

  • Le chemin de keytool.exe, debug.keystore et map.xml peut varier sur votre système.
  • Si vous publiez votre application, assurez-vous d'enregistrer une autre clé API.
  • Si vous ne définissez pas correctement la clé API, votre application échouera sur le téléphone et le message d'erreur est probablement "... s'est arrêté de manière inattendue. Veuillez réessayer.- Force de près "

plus en détail http://d.android.com/guide/tutorials/views/hello-mapview.html

3

Si vous êtes sûr que vous avez INTERNET permission, et que vous avez correctement généré clé API, et avez mis en android:apiKey, et la même erreur se produit encore , voici encore une chose à vérifier: votre application est-elle signée avec le même certificat que celui utilisé pour la clé API Maps?

Les outils de compilation Android utilisent différents certificats pour les versions de débogage et pour les versions de versions. Clé API pour le certificat de version (celui que vous utilisez dans "E xport Android Application "Assistant pour générer .apk), il ne fonctionnera pas dans les versions de débogage - et vice versa.

Vous pouvez trouver l'emplacement de votre fichier de clés de débogage dans la page Préférences> Android> Construire d'Eclipse. Vous pouvez générer la somme de contrôle MD5 et la clé API de la même manière que pour votre certificat de version. Le mot de passe par défaut pour le fichier de clés de débogage est "android".

est ici official docs about debug keystore

2

Une chose à vérifier:

Je viens d'avoir ce problème (ou plutôt, mon problème était que la carte n'apparaissait pas). J'avais parcouru le didacticiel de la vue cartographique et collé la balise "uses-permission" dans la balise d'application par erreur. Il doit être directement sous l'étiquette manifeste, comme ceci:

<?xml version="1.0" encoding="utf-8"?> 
<manifest [...]> 
    <uses-sdk [...] /> 
    <uses-permission android:name="android.permission.INTERNET" /> 

    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <uses-library android:name="com.google.android.maps" /> 
    [...] 
    </application> 
</manifest> 

Une erreur très simple, mais il m'a fallu un certain temps à trouver. Espérons que cela aide quelqu'un d'autre!

+0

.. eu le même problème. Bien que j'ai toujours l'erreur msg d'en haut, je vois finalement la carte qui ne fonctionnait pas pour moi avant. – Bevor

0

J'ai seulement rencontré ce problème sur l'émulateur et j'ai constaté que le seul moyen de contourner cette erreur est de redémarrer l'émulateur.