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.
Peut-être que la clé n'est pas correcte. Vous pouvez essayer la chose suivante:
API Google Map active v2 pour Android sur site de la console Google
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.
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"/>
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.
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:
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.
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.
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.
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é! :)
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.
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.
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.
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...
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.
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 !!
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.
Avez-vous activé Google Map Service dans la console API?