web-dev-qa-db-fra.com

Dans la version 2, la vue Carte n'affiche pas la carte

L'activité de la carte n'affiche pas la carte, elle apparaît simplement comme un écran blanc avec des boutons de contrôle du zoom. Fichier manifeste comme ceci:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.example.demomap"
    Android:versionCode="1"
    Android:versionName="1.0" >
    <uses-sdk
        Android:minSdkVersion="8"
        Android:targetSdkVersion="17" />
   <permission
        Android:name="com.example.demomap.permission.MAPS_RECEIVE"
        Android:protectionLevel="signature" />
    <uses-permission Android:name="com.example.demomap.permission.MAPS_RECEIVE" />
    <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" />
        <application
        Android:allowBackup="true"
        Android:icon="@drawable/ic_launcher"
        Android:label="@string/app_name"
        Android:theme="@style/AppTheme" >
        <activity
            Android:name="com.example.demomap.MainActivity"
            Android:label="@string/app_name" >
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />

                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            Android:name="com.google.Android.maps.v2.API_KEY"
            Android:value="AIzaSyCTQZOcXFS3RpNSVe79HHN1xojat-2MbT4" />
    </application>
    <uses-feature
        Android:glEsVersion="0x00020000"
        Android:required="true" />
</manifest>

Mon fichier XmL Comme ceux-ci:

<?xml version="1.0" encoding="utf-8"?>
<fragment
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@+id/map"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    class="com.google.Android.gms.maps.SupportMapFragment" />

Erreur de journal de chat:

05-15 17:15:16.255: E/Google Maps Android API(26201): Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).

Aidez-moi, s'il vous plaît.

20
Suraj

Peut-être que la clé n'est pas correcte. Vous pouvez essayer la chose suivante:

  • Assurez-vous de saisir le bon nom de package comme this
  • Testez sur un appareil réel qui a mis à jour la dernière version de Google Play. Ou utilisez l'émulateur avec ce guide
  • API Google Map active v2 pour Android sur site de la console Google enter image description here

40
Tai Dao

J'ai eu ce problème en utilisant MapView

fragment_map.xml

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical" Android:layout_width="match_parent"
Android:layout_height="match_parent">

<com.google.Android.gms.maps.MapView
    Android:id="@+id/mapview"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"/>
    @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    String message = getArguments().getString(EXTRA_MESSAGE);
    v = inflater.inflate(R.layout.map_f, container, false);
    vh = new ViewHolder();
    assetHandler = new AssetHandler(getActivity());
    vh.mapView=assetHandler.mapViewHandler.set(v,R.id.mapview);
    vh.mapView.onCreate(savedInstanceState);

    vh.mapView.getMapAsync(new OnMapReadyCallback() {
        @Override
        public void onMapReady(GoogleMap googleMap) {
            googleMap.getUiSettings().setMyLocationButtonEnabled(true);
            googleMap.setMyLocationEnabled(true);
            // Needs to call MapsInitializer before doing any CameraUpdateFactory calls
            try {
                MapsInitializer.initialize(getActivity());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
    return v;
}


@Override
public void onResume() {
    super.onResume();
    vh.mapView.onResume();


}

@Override
public void onPause() {
    vh.mapView.onPause();
    super.onPause();
}

@Override
public void onDestroy() {
    vh.mapView.onDestroy();
    super.onDestroy();
}

@Override
public void onLowMemory() {
    super.onLowMemory();
    vh.mapView.onLowMemory();
}

J'ai remarqué que si les méthodes LifeCycle n'étaient pas implémentées, vous ne pourrez pas voir la carte également. espérons que cela est plein d'espoir pour certains.

17
Ng Zhong Qin

plusieurs fois, le problème vient de ne pas ajouter la prise en charge des services google dans les autorisations du manifeste:

vérifiez que cette autorisation est présente dans votre manifeste:

<uses-permission Android:name="com.google.Android.providers.gsf.permission.READ_GSERVICES"/>
6
Driss Bounouar

J'ai changé le nom du package et mis à jour la console. J'avais tout correct (clé SHA1 correcte, nom du package et clé API dans le manifeste) mais j'ai toujours le même message d'erreur.

J'ai dû désinstaller l'application et redémarrer le téléphone pour que le problème disparaisse. Il semble que quelque chose soit mis en cache.

6
TrueCoke

Comme mentionné ici, ce problème provient généralement du fait que vous ne faites pas référence à google-play-service bibliothèque correctement. Veuillez jeter un coup d'œil aux 3 premières étapes du guide suivant, je n'ai écrit aucune intégration de Google Maps dans votre application et assurez-vous que vous effectuez toutes les étapes correctement:

API Google Maps V2

3
Emil Adz

J'ai eu le même problème que vous mais je l'ai résolu quand j'ai remarqué que je n'avais pas mentionné lors de la création d'une nouvelle application le nom du package dans la clé API ///// vous devez vérifier cela dans la console Google API.

must be the same package name at the console and the one in your Eclipse.

j'espère que cela vous aide.

3
menzous

Ma suggestion est que vous pouvez utiliser MapFragment. Autant que je sache, presque tous les appareils sont mis à niveau vers 11 et au-dessus. MapFragment prend en charge 11 et plus. Connectez-vous à nouveau à la console Google api et vérifiez si votre clé d'application y est présente ou non. Je sais que tu l'as déjà fait. Mais revérifiez. Parce que j'ai un problème où la clé API n'est pas enregistrée. Je dois créer un nouveau projet à chaque fois. Peut-être que vous êtes également confronté au même problème.

2
stickypens

Je viens de passer quelques heures sur cette même erreur. Au départ, la clé API de débogage du fichier de clés n'avait pas été correctement configurée et mon appareil Android mis en cache la clé API incorrecte codée en dur dans mon manifeste. Finalement, j'ai simplement supprimé l'application de l'appareil, nettoyé le projet, et cela a effacé toute clé API résiduelle stockée localement sur l'appareil. J'ai exécuté à nouveau l'application et tout a fonctionné comme un charme!

Bonne chance.

2
i2097i

Il s'agit d'un problème de magasin de clés sur 99%.

1) J'utilise pour la publication et le débogage le même fichier debug.keystore que je copie depuis C: /Users/EEfimenko/.Android/debug.keystore vers le dossier C:\Users\EEfimenko\Android\MyApp\app pour accéder directement à 'debug.keystore' sans lien "C:/Users/..."

2) Ensuite, j'ajoute un point à partir du fichier build.gradle (Module: app) dans 'Android {': signingConfigs { debug { storeFile file('debug.keystore') } release { storeFile file('debug.keystore') } }

3) Exécutez la commande "keytool -list -v -keystore debug.keystore" depuis cmd depuis le dossier C:\Users\EEfimenko\Android\MyApp\app et mélangez l'empreinte SHA1 résultante avec le nom de l'applet: FR: TY: CG ... ..YF: ER; com.myapp.nameofit

4) je passe ensuite à https://code.google.com/apis/console/b/0/?noredirect à:

a) Services et activer "Google Maps Android API v2" à l'état ON

b) mettez FR: TY: CG ..... YF: ER; com.myapp.nameofit dans "API Access" comme Create new Android Key

Vous pouvez maintenant voir à nouveau votre carte avec clé comme au début sans clé! :)

1
Iefimenko Ievgwn

Il existe deux types d'apk signés et non signés.Si votre apk est signé, vous souhaitez utiliser la clé de libération.Si vous utilisez la clé de débogage et signé une apk, cela ne fonctionnera pas. utilisez donc la touche de libération lorsque vous exportez un apk et archivez l'appareil réel. Dans cette documentation, https://developers.google.com/maps/documentation/Android/start#the_google_maps_api_key qu'il a donné. Affichage de l'empreinte digitale du certificat de version.

1
Shadow

Si vous utilisez une clé API créée pour debug.keystore, vos cartes ne s'afficheront que si vous exécutez votre application en mode débogage. Assurez-vous que vous le faites.

1
Ε Г И І И О

Je viens de passer plusieurs heures là-dessus. Il s'avère qu'il y avait un autre debug.keystore sur mon disque (recherchez autour pour vous assurer que vous utilisez le bon). De plus, si vous obtenez cette erreur, laissez l'application en cours d'exécution un peu. J'ai eu l'erreur encore une fois lorsque j'ai ajouté la bonne application SHA1/dans l'accès à l'API Google, et pendant que je lisais certains documents, la carte est soudainement apparue. Cela a probablement pris 1 à 2 minutes.

0
EPagePete

J'ai eu le même problème, alors j'ai continué et j'ai créé une nouvelle clé sur la console API. Assurez-vous également de suivre les instructions d'enregistrement de votre clé de version sur la console API: Affichage de l'empreinte du certificat de version

Ça marche pour moi maintenant...

0
IgorGanapolsky

En plus des éléments à vérifier, mentionnés ci-dessus - j'avais généré la clé SHA1 en dehors d'Eclipse. J'ai ensuite déplacé mon projet dans Eclipse (j'essayais Android studio) et Eclipse a généré automatiquement une nouvelle clé SHA1, j'ai donc dû générer une nouvelle API_KEY basée sur cela.

0
bo7o

Voici ce que j'ai fait. 1) Changé l'espace de travail. 2) Sur le site Web de Lance Nanek, http://permalink.gmane.org/gmane.comp.handhelds.Android.devel/98066 , il semble que - avec la nouvelle fonctionnalité de bibliothèque, vous ne spécifiez les projets Android dont vous dépendez dans la section Java Build Path des propriétés. Vous le faites dans la section Android section des propriétés.

et ainsi, goto Application Project's Properties in Java Build Path -> hit the Projects - select library and remove it. Cela a résolu mon problème !!

0
Prachi

Vous devez signer votre apk avec le même sh1 qui s'inscrit sur la console google api même nom de package d'application et sur le service map v2 sur la console google api, assurez-vous d'avoir signé votre apk avec la même distribution debug.keystore sh1 puis testez sur le vrai appareil que cela fonctionnera comme le charme.

0
Imran Khan

Avez-vous activé Google Map Service dans la console API?

0
Nuraiz