Google Maps V2 no funciona en la producción con la clave correcta
Tengo problemas importantes para que Google Maps funcione en producción dentro de una aplicación para Android. Esto es lo que estoy recibiendo actualmente (la parte inferior es sólo anuncios).
- ¿Asir la ubicación del usuario con google maps v2 en android?
- Múltiples marcadores con texto en Google Maps API v2
- Recuperar la distancia de la parte visible del mapa de Google
- Convierta la aplicación de Android que utiliza mapas API V1 a Maps Android API V2
- API de Google Maps para Android da un NoClassDefFoundError
Pasos clave que he seguido:
1) Tengo asegurado que tengo la clave correcta de producción de SHA1 y lo he implementado en la API de consola de Google, así como dentro de la aplicación (clave que google da). He registrado dos claves – una para la depuración y otra para la producción
2) Internet, ubicación, etc está trabajando
3) La aplicación funciona en modo DEBUG, pero no funciona cuando está firmada e instalada en el dispositivo vía USB. Tengo triple comprobado el SHA 1 firma del signo, etc.
4) El MapsFragment proviene de la plantilla disponible en Android Studio.
En el modo de producción, el log cat muestra lo siguiente:
01-11 16:04:54.511 19346-19437/com.mike.mapstest E/Google Maps Android API﹕ Authorization failure. Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map. 01-11 16:04:54.516 19346-19437/com.mike.mapstest E/Google Maps Android API﹕ In the Google Developer Console (https://console.developers.google.com) Ensure that the "Google Maps Android API v2" is enabled. Ensure that the following Android Key exists: API Key: YOUR_KEY_HERE Android Application (<cert_fingerprint>;<package_name>): <SHA1 Removed for this> ;com.mike.mapstest
Este error, obviamente, dice que algo está mal con mi auth? ¿Qué estoy haciendo mal?
- Android Maps: No se pudo cargar el mapa. No se pudo contactar con los servidores de Google
- Android - google map mover la cámara de una posición a otra
- Cómo obtener límite de velocidad mediante google maps api?
- Google Maps API V2 - siempre obtiene error de autenticación
- SHA-1 huella dactilar del certificado keystore
- Cómo obtener el espacio de latitud / longitud en Google Map V2 para Android
- Com.google.android.gms.maps.MapFragment: No se puede resolver el símbolo "maps"
- Cómo mostrar mapas en una aplicación de Android, si los servicios de Google Play no están instalados en un teléfono
Basado en la salida logcat de su compilación de versión debugable:
01-11 16:04:54.511 19346-19437/com.mike.mapstest E/Google Maps Android API﹕ Authorization failure. Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map. 01-11 16:04:54.516 19346-19437/com.mike.mapstest E/Google Maps Android API﹕ In the Google Developer Console (https://console.developers.google.com) Ensure that the "Google Maps Android API v2" is enabled. Ensure that the following Android Key exists: API Key: YOUR_KEY_HERE Android Application (<cert_fingerprint>;<package_name>): <SHA1 Removed for this> ;com.mike.mapstest
Parece que no ha sobrepasado el marcador de posición de la clave api YOUR_KEY_HERE
en el manifiesto (o un archivo de claves api independiente, dependiendo de su configuración). Reemplazar esa cadena, donde quiera que viva, con su clave real y debe ser bueno para ir.
Editar: este tutorial , si coincide con su configuración, probablemente explica por qué sólo está viendo esto para las compilaciones de versiones:
Vuelva a Android Studio y pegue la clave API en la sección YOUR_KEY_HERE del archivo:
Tenga en cuenta que estos pasos han permitido que Google Maps admita la versión de depuración del paquete de aplicaciones. La clave de la API también deberá agregarse al archivo google_maps_api.xml ubicado en los valores de MapDemo -> app -> src -> release -> res -> cuando la versión de lanzamiento de la aplicación esté lista para ser construida.
Estaba teniendo estos mismos problemas, y estaba golpeando mi cabeza contra la pared durante unos días. He leído todos los mensajes acerca de poner la clave correcta en su lugar. Seguí poniendo la clave correcta en mi archivo google_maps_api.xml. StKent arriba mencionado para asegurarse de sobrescribir con la cadena real en AndroidManifest.xml. Esto es lo que me lo arreglaron.
Lo que tenía cuando no funcionaba: en AndroidManifest.xml:
<meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/google_maps_key" />
Y en google_maps_api.xml:
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">AIza_the actual key</string>
Lo que cambié para que funcione cambié mi AndroidManifest.xml para incluir:
<meta-data android:name="com.google.android.geo.API_KEY" android:value="AIzsa_the actual key" />
Cuando utilice Android Studio para generar la actividad de Google Maps, ignorará los configs de compilación de gradle y utilizará el debug.keystore
predeterminado. El SHA1 de google_maps_api.xml
se basa en este valor predeterminado. Al crear el permiso en la consola de la API de Google, asegúrese de utilizar su SHA1 de producción y depuración si está utilizando el valor predeterminado no.
Depuración y la clave de producción será diferente. Si utiliza la clave de depuración para el modo de liberación, no podrá ver el mapa de google. Para el modo de liberación, cuando cambie la clave de mapa de Google, debe limpiar el proyecto y luego exportar apk.
Puede obtener más información https://developers.google.com/maps/documentation/android/start
Obtener SHA1 privado del almacén de claves de depuración
Keytool -list -v -keystore ~ / .android / debug.keystore -alias androiddebugkey -storepass android -keypass your_app_password
para ver más
SHA-1 huella dactilar del certificado keystore
O puede eclipse herramienta para generar clave privada SHA1 utilizando el menú de exportación
En mi caso, había ingresado el nombre del paquete incorrecto en el Administrador de API de API de Google – Credenciales – "Restringir uso a tus aplicaciones de Android". Asegúrese de ingresar el nombre de paquete correcto (como en AndroidManifest.xml) y las huellas correctas de SHA (para depuración y producción).
Resuelto, pongo en el Manifiesto la "Clave para aplicaciones de navegador (con referencias)" en lugar de la "Clave para aplicaciones de Android (con certificados)" de la Consola de API de Google
- El título de android no se mostrará en la barra de herramientas
- Cómo insertar% 20 en lugar de espacio en android