web-dev-qa-db-fra.com

L'API Google Map v2 n'affiche pas la carte sur l'appareil.

J'utilise un exemple de code fourni dans Google Map Documentation pour Google Map Api v2 ( https://developers.google.com/maps/documentation/Android/start#specify_settings_in_the_application_manifest ).

Le code a été exécuté avec succès, mais Map n'est pas chargé sur le périphérique. Seul l'écran blanc est affiché sur l'appareil. J'utilise un appareil Android version 4.0.3.

enter image description here

1) J'ai activé le service pour le projet.

enter image description here

2) clé générée:

enter image description here

enter image description here

3) "google-play-services_lib" en tant que bibliothèque dans le projet:

enter image description here

4) Manifest Android:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.example.mapdemo"
    Android:versionCode="1"
    Android:versionName="1.0" >

    <uses-sdk
        Android:minSdkVersion="8"
        Android:targetSdkVersion="17" />

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

    <permission
        Android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
        Android:protectionLevel="signature" />

    <uses-permission Android:name="com.example.mapdemo.permission.MAPS_RECEIVE" />
    <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" />
    <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" >

        <meta-data
            Android:name="com.google.Android.maps.v2.API_KEY"
            Android:value="AIzaSyCvZrhQ8YBfyYBvTic3DSdu2O06nAmhpg4" />

        <activity
            Android:name="com.example.mapdemo.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>
    </application>
</manifest>

5) Activité:

package com.example.mapdemo;

import Android.app.Activity;
import Android.os.Bundle;
import Android.view.Menu;

public class MainActivity extends Activity  {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);      
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

6) mise en page:

<?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"
          Android:name="com.google.Android.gms.maps.MapFragment"/>
23
vinidog

Utilisez l'activité de fragment 

par exemple:

public class Maps extends FragmentActivity {
    GoogleMap map;
    double lat;
    double lan;
    boolean flag = false;

    // private LocationManager lm;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mapptry);

        map = ((SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map)).getMap();
                 }
  }

Remplacez votre map.xml par 

<fragment
    Android:id="@+id/map"
    Android:name="com.google.Android.gms.maps.SupportMapFragment"
    Android:layout_width="wrap_content"
    Android:layout_height="match_parent" />

MODIFIER

Je dois faire ça aussi 

importer Android.support.v4.app.FragmentActivity;

Avant de faire cela Cliquez avec le bouton droit de la souris sur projet-> propriétés-> chemin de construction-> chemin de construction Java -> bibliothèques .. puis cliquez sur ajouter des fichiers JAR externes.

le aller à

utilisateur\Android-sdks\extras\Android\support\v4

et sélectionnez Android-support-v4.jar

PS: Faites tout cela à condition que votre clé API soit correcte. Si vous la clé API est fausse, alors elle n’affiche qu’un écran blanc 

15
Benil Mathew

essayez d'ajouter 

GoogleMap googleMap =    ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();

et remplacez votre xml par 

<?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"
Android:name="com.google.Android.gms.maps.MapFragment"
/>

vous avez ajouté le code suivant en dehors de la balise d'application à la place de l'insérer dans la balise

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

<permission
    Android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
    Android:protectionLevel="signature" />

espérons que cela pourrait aider quelqu'un qui est confronté au même problème

3
Maniya Joe

Ce problème peut provenir de la clé d’API ou vous pouvez simplement vérifier votre empreinte digitale SHA1 dans la console de l’API de votre projet ( https://console.developers.google.com/project ) et votre Windows Eclipse -> Préférences -> Android -> La construction sont les mêmes, sinon, il suffit de mettre à jour le SHA1 à partir de la console pour construire le chemin ou vice versa.

1
user5064401

Pour maintenir la sécurité du système et des utilisateurs, Android demande aux applications de demander une autorisation avant de pouvoir utiliser certaines données et fonctionnalités du système. En fonction de la sensibilité de la zone, le système peut accorder l'autorisation automatiquement ou demander à l'utilisateur d'approuver la demande.

https://developer.Android.com/guide/topics/permissions/index.html

0
user7482740

Très probablement, votre problème sera résolu lorsque vous vous assurerez que les points mentionnés ci-dessous:

  1. Activer l'API Google Map

  2. Utilisez le nom de package correct lors de la génération de la clé API (dans mon cas, c'était l'erreur) .. et cela semble également poser problème dans votre cas, car le nom du package semble être incorrect (com.example.mapdemo)

  3. Assurez-vous que vous utilisez le fichier de magasin de clés correct pour générer le fichier SHA1.

J'espère que cela vous sera utile.

0