Google Maps API V2 'Error al cargar mapa. No se pudo contactar con Google Servers, ni siquiera comprobar permiso y keystore

Sigo la guía para crear una muestra de mapa de google,

Pero siempre lanzar error siguiente.

E/Google Maps Android API(27821): Failed to load map. Could not contact Google servers. 

Permiso READ_GSERVICES y depuración y liberación del almacén de claves han sido probados. Tampoco pueden resolver el problema anterior. ¿Podría alguien decirme por qué arrojar ese error?

Archivo de manifiesto:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.where.common" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> <permission android:name="com.where.common.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-permission android:name="com.where.common.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.com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-feature android:glEsVersion="0x00020000" android:required="true" /> <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="AIzaSyDawEkMP7gdiB4nOOkXcdUcxSAvm0kfCmI" /> <activity android:name="com.where.common.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> 

Archivo Java:

 package com.where.common; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 

Ver archivo:

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

¿Agregó todos los otros permisos de la necesidad?

 <permission android:name="com.eadesign.skygiraffefinalv2.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> <uses-permission android:name="com.eadesign.skygiraffefinalv2.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" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

ACTUALIZAR:

1. La parte de meta-data debe estar en la parte más baja de la etiqueta de aplicación, así:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.where.common" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> <permission android:name="com.where.common.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-permission android:name="com.where.common.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.com.google.android.providers.gsf.permission.READ_GSERVICES" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-feature android:glEsVersion="0x00020000" android:required="true" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.where.common.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="AIzaSyDawEkMP7gdiB4nOOkXcdUcxSAvm0kfCmI" /> </application> 

2. Otro problema que veo es que desarrollar su aplicación para API V8, por lo que tiene que utilizar el SupportMapFragment y FragmentActivity para su Activity .

3. y la última cosa para que su mapa trabaje usted tiene que agregar una actividad de la licencia para la información de las licencias de Google.

Asegúrese de que todos los puntos mencionados abajo sean atendidos:

1) Se ha habilitado el servicio incorrecto. Asegúrate de que la " API de Google Maps para Android v2 " no " Google Maps API v2 " esté habilitada y vuelva a generar la clave de la API.

2) Agregue los siguientes elementos a su manifiesto. Reemplace com.example.mapdemo con el nombre del paquete de la aplicación.

3) Uso del certificado y llave correctos . Certificado de liberación, que NO FUNCIONARÁ durante la depuración cuando ejecutes la aplicación en mi teléfono. En su lugar, debe utilizar la huella dactilar de depuración del certificado del almacén de claves.

No olvide borrar la caché del programa antes de probar la nueva API KEY 🙂 Debido a que Android está utilizando la primera clave de la API, incluso si cambia la clave de la API.

Finalmente, encuentro por qué sucedería esto. Porque escribo

 <uses-permission android:name="android.permission.com.google.android.providers.gsf.permission.READ_GSERVICES" /> 

Está mal. Debería ser

 <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 

Aquí les doy las gracias por la paciencia de Emil Adz para ayudarme!

Tuve el mismo problema. Después de crear la clave del API mucho tiempo, el problema todavía existe. Entonces simplemente desinstalar la aplicación e instalarla de nuevo. Básicamente la aplicación está almacenando las credenciales de clave de api erróneas en la memoria caché. Y cuando volvemos a ejecutar la aplicación, sólo lo carga desde caché. Así que instalar la aplicación de nuevo resuelve mi problema.

¿Resolvió el problema? Puede que este sea el problema ->

Se habilitó el servicio incorrecto. Asegúrate de que la "API de Google Maps para Android v2" no "Google Maps API v2" esté habilitada y vuelva a generar la clave de la API. ( https://stackoverflow.com/a/13805807/1300982 )

Si este es el problema, no olvide regenerar la clave de API.

He resuelto este problema mediante la adición de soporte a mi fragmento en la clase de diseño:

 class="com.google.android.gms.maps.SupportMapFragment" 

Tuve un problema similar como user2204477. tuve

 <uses-permission android:name="com.google.android.providers.gsf.permissions.READ_GSERVICES" /> 

Debería ser

 <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 

Tenga en cuenta que la equivocada dice "permisos" y la correcta dice "permiso". Acabo de perder 5 horas tratando de resolver esto lol.

Tuve el mismo problema! Reinstalado 50 veces. Basta con borrar la memoria caché y eliminar todos los datos de la aplicación en el dispositivo Android antes de borrar. Ayuda, gracias a Dios …

Comprobar permisos

 <uses-permission android:name="android.permission.INTERNET" /> <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" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-feature android:glEsVersion="0x00020000" android:required="true" /> <permission android:name="com.packagename.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> 
  • Acceso a google maps en el emulador android
  • Google Maps v2, desaparecido 'android.support.v4.app.FragmentActivity'
  • Convierta la aplicación de Android que utiliza mapas API V1 a Maps Android API V2
  • Área de clic del marcador de mapa de Google
  • Parsing JSON de los mapas google DistanceMatrix api en android
  • Buscar una ubicación en google maps sin dar sus geo-coordenadas
  • Android Studio - No se puede volver a cargar la lista de AVD (d: skin)
  • Obtenga los sitios de inicio y trabajo de los usuarios de Google
  • Código postal / código postal de android lugar objeto
  • Cómo enfocar el marcador de Google por marcador de título?
  • ¿Cómo puedo obtener la ubicación del centro en los mapas v2 en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.