web-dev-qa-db-fra.com

Écran vierge Android Google Map API V2

Bonjour, j'ai récemment suivi le didacticiel de Vogella sur Google Map API v2. Le code est similaire au sien. Mais pour une raison quelconque, la carte est vide et le logcat ne montre aucune erreur non plus. J'ai également suivi cette video pour obtenir l'empreinte digitale SHA1, puis j'ai inséré la clé API dans le fichier manifeste. J'ai utilisé le magasin de clés de débogage C:\Users\UserName.Android\debug.keystore qui est également le magasin de clés de débogage par défaut situé dans Eclipse -> Windows -> Préférences -> Android -> Construire.

J'ai également généré une nouvelle clé API et cela ne fonctionne toujours pas.

Fichier manifeste:

<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.example.barcodelibrary"
    Android:versionCode="1"
    Android:versionName="1.0" >

    <uses-sdk
        Android:minSdkVersion="11"
        Android:targetSdkVersion="15" />

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

    <uses-feature
        Android:glEsVersion="0x00020000"
        Android:required="true" />
    <uses-feature Android:name="Android.hardware.camera" />
    <uses-feature Android:name="Android.hardware.camera.autofocus" />
    <uses-feature Android:name="Android.hardware.camera.flash" />

    <uses-permission Android:name="Android.permission.INTERNET"/>
    <uses-permission Android:name="Android.permission.CAMERA"/>
    <uses-permission Android:name="Android.permission.INTERNET"/>
    <uses-permission Android:name="Android.permission.VIBRATE"/>
    <uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission Android:name="Android.permission.SET_DEBUG_APP"></uses-permission>
    <application
        Android:icon="@drawable/ic_launcher"
        Android:label="@string/app_name"
        Android:theme="@style/AppTheme" >
        <activity
            Android:name=".HomeActivity"
            Android:label="@string/title_activity_home" >
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />

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

        </activity>
        <activity Android:name=".ScanActivity"/>
        <activity Android:name=".MapActivity"/>
        <activity Android:name=".BarcodeHelper"/>
        <activity Android:name=".JsonHelper"/>

        <meta-data
            Android:name="com.google.Android.maps.v2.API_KEY"
            Android:value="my api key" />
    </application>

</manifest>

Ceci est mon fichier de mise en page pour l'activité de la carte:

    <RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    tools:context=".MapActivity" >

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

</RelativeLayout>

Ceci est mon activité de carte:

public class MapActivity extends Activity 
{
    static final LatLng HAMBURG = new LatLng(53.558, 9.927);
    static final LatLng KIEL = new LatLng(53.551, 9.993);
    private GoogleMap map;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_map);

        map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
                .getMap();
            Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG)
                .title("Hamburg"));
            Marker kiel = map.addMarker(new MarkerOptions()
                .position(KIEL)
                .title("Kiel")
                .snippet("Kiel is cool")
                .icon(BitmapDescriptorFactory
                    .fromResource(R.drawable.ic_launcher)));
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) 
    {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_map, menu);
        return true;
    }
}

Merci!

20
user1832478

Vous avez quelques problèmes de permission avec votre manifeste. Tout d’abord, dans ce qui suit, vous devez remplacer le nom du paquet par votre paquet, vous devez également le remplacer par uses-permission

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

par le nom de votre paquet, devrait être -

<permission
          Android:name="com.example.barcodelibrary.permission.MAPS_RECEIVE"
          Android:protectionLevel="signature"/>
<uses-permission Android:name="com.example.barcodelibrary.permission.MAPS_RECEIVE"/>

Enfin, il semble que les autorisations suivantes de la section specifying permissions du guide Getting Started

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

Pour moi, il s’est avéré que je n’ai pas activé le Google Maps Android API v2 . Nous utilisions une autre API Google Maps que je supposais être la même. 

8
martn_st

si cela ne fonctionne pas bien, suivez ceci 

Résolution du problème d’écran blanc sur les cartes: Bonjour, j’ai passé très longtemps à regarder cet écran vierge et j’ai essayé toutes les solutions que vous pouvez imaginer.Maintenant, le problème est résolu.

1-Suivez toutes les étapes de ce tutoriel soigneusement.

2-Si l'écran vierge reste identique, supprimez le fichier de stockage de clés de débogage existant dans C:\Users\youUser.Android\debug.keystore <- supprimez ce fichier.

3-Sur les eClips IDE reconstruisez votre application afin qu’elle recrée automatiquement ce fichier . 4-On eclips allez sur Fenêtre -> Préférences -> Android -> Construire. généré SHA1 puis suivez les étapes de génération de clé normales . 5-Exécuter sur votre appareil réel, et j'espère que vous verrez votre carte :)

1
Ala'a Karss

Vous devez exécuter votre application dans amulator avec la configuration suivante .... 1) Google API (image système x86) 2) Sélectionnez la case à cocher indiquant Utiliser un hôte GPU ..

1
Jangid Subhashchand

J'ai dû ajouter la bonne empreinte digitale du certificat SHA-1 à la console développeur de Google.

  1. Afficher l'empreinte actuelle: keytool -list -keystore ~/.Android/debug.keystore

  2. Copiez l'empreinte digitale (par exemple, 48: 6F: 55: B7: C5: E4: 54: E1: 29: D5: E1: E1: E2: A8)

  3. Ajoutez-le à vos informations d'identification pour cette application particulière dans Console développeur Google

1
whirlwin

Dans mon cas, il s'agissait d'une application existante que j'ai clonée à partir de GitHub et qui n'a pas modifié la clé API. Ce qui a fonctionné pour moi, c’est d’activer le SHA-1 de mon certificat de signature. Suivez ces instructions abrégées pour obtenir une empreinte SHA-1.

Ensuite, j'ai demandé au développeur principal d'ajouter mon empreinte digitale SHA-1 aux packages autorisés pour sa clé API correspondante ici . Ensuite, j'ai refait la construction de la même manière et cela a fonctionné.

0
ErnestScribbler

Définissez customotesote comme identique à celui par défaut (Eclipse). Et enregistrez une clé API dans la console Google, comme indiqué dans la documentation.

0
patriot10

ma réponse dans un autre post est ce qui fonctionne réellement pour moi, je colle le certificat de signature App sha-1

0
Andres Felipe

Android Studio: Assurez-vous de placer votre clé dans la bonne hiérarchie

 enter image description here

0
itzhar

J'ai un problème similaire avec la carte. Après avoir résolu tous les problèmes de bibliothèque et les problèmes clés, je viens de voir un écran blanc étiqueté «Google» . Le problème était que je mettais la MapFragment dans une ScrollView. Après avoir retiré la ScrollView, tout fonctionne correctement. Je peux voir la carte.

0
BHuelse

La plupart des gens oublient d’activer le API Google Maps Android V2 dans la console du développeur , je l’ai activée et le tour est joué, ma carte est apparue. 

0
Oladipo Olasemo