studio - Mapa de Google firmó errores clave api en Android
map fragment android studio (9)
Acabo de encontrar exactamente el mismo problema.
No hay un código escrito por el usuario que arroje la Excepción: se genera en el logcat de Eclipse y el resultado es que no se ve ninguno de los mosaicos del mapa de Google. Al igual que Jen, regeneré la clave, fue en vano.
La plataforma es Android 3.2, el dispositivo es el Transformador Asus, la conexión es WiFi.
Para mi aplicación Android 2.2 funciona bien, recuperando el mapa en un Droid a través de 3G.
Aquí está la solución a mi problema, espero que ayude a Jen:
En mi caso, si instalo la versión de lanzamiento en el Transformer usando el ícono de "Emitir como" Eclipse, con el Transformer USB-tethered, el mapa está fallando como se describió anteriormente (para su información este es un procedimiento que he usado muchas veces con Android 2.2 y otros dispositivos).
Así que intenté esto en su lugar: uso la opción Eclipse File | Export ... para crear una versión APK, y luego la instalé en Transformer usando su aplicación Asus Sync. Todo esta bien. Aparecen los mosaicos del mapa.
Cuando cambié de mi clave de mapa de depuración a mi clave de mapa firmada, mis mapas dejan de funcionar. Recibo los siguientes errores en logcat:
09-03 18:18:04.112: WARN/System.err(4073): IOException processing: 26
09-03 18:18:04.112: WARN/System.err(4073): java.io.IOException: Server returned: 3
09-03 18:18:04.112: WARN/System.err(4073): at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115)
09-03 18:18:04.112: WARN/System.err(4073): at android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473)
09-03 18:18:04.112: WARN/System.err(4073): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.java:1117)
09-03 18:18:04.112: WARN/System.err(4073): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:994)
09-03 18:18:04.112: WARN/System.err(4073): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702)
09-03 18:18:04.112: WARN/System.err(4073): at java.lang.Thread.run(Thread.java:1019)
Revisé todo, los permisos y la biblioteca están en su lugar. He recreado la tecla chamuscada y no tuve suerte.
¿Algunas ideas?
Finalmente está arreglado.
Estoy usando una máquina con Windows, así que simplemente fui a C:/Users/rohit/.android
y debug.keystore
y default.keyset1
una vez que lo hice, fui a Eclipse y apliqué una compilación limpia a mi proyecto y ¡listo!
La tecla de mapa firmado se usa para la aplicación de lanzamiento. Entonces obtendrás esa información. si depura la aplicación a través de USB conectado con la tecla de mapa firmado. Vuelva a cambiar la clave del mapa de depuración si desea depurar la aplicación, y reemplácela con la clave del mapa firmado antes de lanzar una actualización o una nueva versión.
Para las pobres almas que intentaron construir el ejemplo del mapa a partir de los extras de sdk: tan pronto como cambié el nombre del paquete de com.example.mapdemo a com.mynmae.mapdemo, el mapa apareció mágicamente. Sí, perdí una hora buscando e intentando y silenciosamente rechacé el nombre del paquete.
Si está utilizando una clave de depuración que alguien más le ha generado y proporcionado, esa es la razón del mapa en blanco con la siguiente excepción.
java.io.IOException: Server returned: 3
Puede usar este enlace para obtener una clave API: Register
Tengo la misma pregunta, pero creo que encontré la respuesta.
- Decida seguir estos pasos https://developers.google.com/android/maps-api-signup y reciba la huella digital MD5 de su certificado.
- Mientras desarrollo, si el mapa no se muestra, ¡no te preocupes por esto! Simple extracto APK use herramientas de Android con la herramienta clave que se utiliza en el primer paso y use este archivo APK para instalar en su teléfono, verá MapView
De todos modos, durante el tiempo de desarrollo, tal vez no vea MapView, pero hasta que no haya ningún problema, ¡no se preocupe por esto! Espera simple cuando termines la aplicación y compilación con tu almacén de claves y verás la visualización del mapa correctamente
Tuve el mismo problema y pensé que no había ninguna respuesta útil en Internet, por lo que espero que esto ayude a todos en el futuro.
Al usar GoogleMaps for Android
, necesita dos claves: depurar y liberar.
La clave "depurar" es una especie de término engañoso. Esta clave también se usará cuando desarrolles la aplicación en Eclipse. Entonces, esencialmente, use la clave de depuración para el desarrollo, las pruebas y la depuración.
Cuando esté listo para iniciar la aplicación en Market, configure android:debuggable="false"
en AndroidManifest.xml
y use la tecla firmada API.
Al usar la clave de API firmada, MapView
se mostrará SOLAMENTE cuando la aplicación se instale desde Android Market
. Por lo tanto, la instalación de la aplicación desde Eclipse
(Ejecutar como, Depurar como, etc.) o la línea de comando (adb install)
no mostrará MapView
. Tenga la seguridad, una vez que la aplicación esté en Market, la descarga y se mostrará MapView
.
Con la clave API firmada, si implementa la aplicación desde Eclise, obtendrá un "Servidor devuelto 3, IOProcessing Exception 26" como advertencia; simplemente ignórelo.
Nota: También asegúrese de que no haya instancias duplicadas del mismo MapView. Si su aplicación necesita "x" no. de MapView
s, genere "x" no. de nuevas claves firmadas (una para cada MapView) ya que GoogleMaps tiene un límite de consulta para una sola instancia de MapView
.
Para obtener ambas claves, siga los pasos para Obtener claves de API para GoogleMaps en Android .
Feliz Codificación!
ACTUALIZAR:
El enlace de arriba para obtener claves api ahora es un procedimiento obsoleto. Consulte la Obtención de claves API para GoogleMaps Android API v2 en el futuro.
Una cosa más: después de agregar -v, debes recordar que la API de Google solo necesita MD5, no SHA1.Por favor, comprueba qué código le das a google.
Yo tuve el mismo problema. En mi caso, lo que estaba haciendo mal fue esto. Estaba escribiendo el comando keytool de esta manera:
keytool -list -keystore debug.keystore ...
en lugar de:
keytool -list -keystore ~/.android/debug.keystore ...
Así que no estaba actualizando el almacén de claves de Eclipse con mi huella digital.
Espero que esto ayude a alguien :)