Mapas en Android (Google Maps Android API v2) – I

Hace tan sólo 3 días, Google presentaba la segunda versión de su API de Google Maps para Android. Esta nueva versión presenta muchas novedades interesantes, de las que cabe destacar las siguientes:

  • Integración con los Servicios de Google Play (Google Play Services) y la Consola de APIs.
  • Utilización a través de un nuevo tipo específico de fragment (MapFragment), una mejora muy esperada por muchos.
  • Utilización de mapas vectoriales, lo que repercute en una mayor velocidad de carga y una mayor eficiencia en cuanto a uso de ancho de banda.
  • Mejoras en el sistema de caché, lo que reducirá en gran medida las famosas áreas en blanco que tardan en cargar.
  • Los mapas son ahora 3D, es decir, podremos mover nuestro punto de vista de forma que lo veamos en perspectiva.

Al margen de las novedades generales, como desarrolladores ¿qué diferencias nos vamos a encontrar con respecto a la API anterior a la hora de desarrollar nuestras aplicaciones Android?

Pues la principal será el componente que utilizaremos para la inclusión de mapas en nuestra aplicación. Si recordamos la anterior versión de la API, para incluir un mapa en la aplicación debíamos utilizar un control de tipo MapView, que además requería que su actividad contenedora fuera del tipo MapActivity. Con la nueva API nos olvidaremos de estos dos componentes y pasaremos a tener sólo uno, un nuevo tipo específico de fragment llamado MapFragment. Esto nos permitirá entre otras cosas añadir uno [o varios, esto también es una novedad] mapas a cualquier actividad, sea del tipo que sea, y contando por supuesto con todas las ventajas del uso de fragments. Nota importante: dado que el nuevo control de mapas se basa en fragments, si queremos mantener la compatibilidad con versiones de Android anteriores a la 3.0 tendremos que utilizar la librería de soporte android-support. Más adelante veremos más detalles sobre esto.

Además de esta novedad, la integración de la API con los Google Play Services y la Consola de APIs de Google, harán que los preparativos del entorno, las librerías utilizadas, y el proceso de obtención de la API Key de Google Maps sean un poco distintos a los que ya vimos en los artículos dedicados la primera versión.

Pues bien, en este nuevo artículo del Curso de Programación Android vamos a describir los pasos necesarios para hacer uso de la nueva versión de la API de mapas de Google (Google Maps Android API v2).

Como en los artículos previos donde aprendimos a utilizar la API v1, en este caso también será necesario realizar algunos preparativos y tareas previas antes de poder empezar a utilizarlos en nuestras aplicaciones.

En primer lugar, dado que la API v2 se proporciona como parte del SDK de Google Play Services, será necesario incorporar previamente a nuestro entorno de desarrollo dicho paquete. Haremos esto accediendo desde Eclipse al Android SDK Manager y descargando del apartado de extras el paquete llamado “Google Play Services”.

download-google-play-services-sdk

Tras pulsar el botón de Install y aceptar la licencia correspondiente el paquete quedará instalado en nuestro sistema, concretamente en la ruta: <carpeta-sdk-android>/extras/google/google_play_services/. Recordemos esto porque nos hará falta más adelante.

El siguiente paso será obtener una API Key para poder utilizar el servicio de mapas de Google en nuestra aplicación. Este paso ya lo comentamos en los artículos sobre la API v1, pero en este caso el procedimiento será algo distinto. La nueva API de mapas de Android se ha integrado por fin en la Consola de APIs de Google (una herramienta de la que ya hablamos por ejemplo en los artículos dedicados a Google Cloud Messaging), por lo que el primer paso será acceder a ella. Una vez hemos accedido, tendremos que crear un nuevo proyecto desplegando el menú superior izquierdo y seleccionando la opción “Create…”.

create-api-project-2

Aparecerá entonces una ventana que nos solicitará el nombre del proyecto. Introducimos algún nombre descriptivo y aceptamos sin más.

create-new-api-project

Una vez creado el proyecto, accederemos a la opción “Services” del menú izquierdo. Desde esta ventana podemos activar o desactivar cada uno de los servicios de Google que queremos utilizar. En este caso sólo activaremos el servicio llamado “Google Maps Android API v2″ pulsando sobre el botón ON/OFF situado justo a su derecha.

mapas-android-api-2

Una vez activado aparecerá una nueva opción en el menú izquierdo llamada “API Access”. Accediendo a dicha opción tendremos la posibilidad de obtener nuestra nueva API Key que nos permita utilizar el servicio de mapas desde nuestra aplicación particular.

api-access-1

Para ello, pulsaremos el botón “Create new Android key…”. Esto nos llevará a un cuadro de diálogo donde tendremos que introducir algunos datos identificativos de nuestra aplicación. En concreto necesitaremos dos: la huella digital (SHA1) del certificado con el que firmamos la aplicación, y el paquete java utilizado. El segundo no tiene misterio, pero el primero requiere alguna explicación. Toda aplicación Android debe ir firmada para poder ejecutarse en un dispositivo, tanto físico como emulado. Este proceso de firma es uno de los pasos que tenemos que hacer siempre antes de distribuir públicamente una aplicación.  Adicionalmentes, durante el desarrollo de la misma, para realizar pruebas y la depuración del código, aunque no seamos conscientes de ello también estamos firmado la aplicación con un “certificado de pruebas”. Podemos saber en qué carpeta de nuestro sistema está almacenado este certificado accediendo desde Eclipse al menú Window /Preferences y accediendo a la sección Android / Build.

debug-keystore

Como se puede observar, en mi caso el certificado de pruebas está en la ruta “C:\Users\Salvador\.android\debug.keystore”. Pues bien, para obtener nuestra huella digital SHA1 deberemos acceder a dicha ruta desde la consola de comando de Windows y ejecutar los siguientes comandos:

C:\>cd C:\Users\Salvador\.android\

C:\Users\Salvador\.android>"C:\Program Files\Java\jdk1.7.0_07\bin\keytool.exe" -list -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android

Suponiendo que tu instalación de Java está en la ruta “C:\Program Files\Java\jdk1.7.0_07“. Si no es así sólo debes sustituir ésta por la correcta. Esto nos deberá devolver varios datos del certificado, entre ellos la huella SHA1.

sha1

Pues bien, nos copiamos este dato y lo añadimos a la ventana de obtención de la API Key donde nos habíamos quedado antes, y a continuación separado por un punto y coma añadimos el paquete java que vayamos a utilizar en nuestra aplicación, que en mi caso será “net.sgoliver.android.mapasapi2″.

api-access-2

Pulsamos el botón “Create” y ya deberíamos tener nuestra API Key generada, podremos verla en la pantalla siguiente dentro del apartado “Key for Android Apps (with certificates)”. Apuntaremos también este dato para utilizarlo más tarde.

api-access-3

Con esto ya habríamos concluido los preparativos iniciales necesarios para utilizar el servicio de mapas de Android en nuestras propias aplicaciones, por lo que empecemos a crear un proyecto de ejemplo en Eclipse.

Abriremos Eclipse y crearemos un nuevo proyecto estandar de Android, en mi caso lo he llamado “android-mapas-api2″. Recordemos utilizar para el proyecto el mismo paquete java que hemos indicado durante la obtención de la API key.

Tras esto lo primero que haremos será añadir al fichero AndroidManifest.xml la API Key que acabamos de generar. Para ello añadiremos al fichero, dentro de la etiqueta <application>, un nuevo elemento <meta-data> con los siguientes datos:

...
<application>
...
    <meta-data android:name="com.google.android.maps.v2.API_KEY"
               android:value="api_key"/>
...
</application>

Como valor del parámetro android:value tendremos que poner nuestra API Key recien generada.

Siguiendo con el AndroidManifest, también tendremos que incluir una serie de permisos que nos permitan hacer uso de los mapas. En primer lugar tendremos que definir y utilizar un permiso llamado “tu.paquete.java.permission.MAPS_RECEIVE”, en mi caso quedaría de la siguiente forma:

<permission
      android:name="net.sgoliver.android.mapasapi2.permission.MAPS_RECEIVE"
      android:protectionLevel="signature"/>

<uses-permission android:name="net.sgoliver.android.mapasapi2.permission.MAPS_RECEIVE"/>

Además, tendremos que añadir permisos adicionales que nos permitan acceder a los servicios web de Google, a Internet, y al almacenamiento externo del dispositivo (utilizado para la caché de los mapas):

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

Por último, dado que la API v2 de Google Maps Android utiliza OpenGL ES versión 2, deberemos especificar también dicho requisito en nuestro AndroidManifest añadiendo un nuevo elemento <uses-feature>:

<uses-feature android:glEsVersion="0x00020000"
              android:required="true"/>

Una vez hemos configurado todo lo necesario en el AndroidManifest, y antes de escribir nuestro código, tenemos que seguir añadiendo elementos externos a nuestro proyecto. El primero de ellos será referenciar desde nuestro proyecto la librería con el SDK de Google Play Services que nos descargamos al principio de este tutorial. Para ello, desde Eclipse podemos importar la librería a nuestro conjunto de proyectos mediante la opción de menú “File / Import… / Existing Android Code Into Workspace”. Como ya dijimos este paquete se localiza en la ruta “<carpeta-sdk-android>/extras/google/google_play_services/libproject/google-play-services_lib“.

import-library

Tras seleccionar la ruta correcta dejaremos el resto de opciones con sus valores por defecto y pulsaremos Finish para que Eclipse importe esta librería a nuestro conjunto de proyectos.

El siguiente paso será referenciar esta librería desde nuestro proyecto de ejemplo. Para ello iremos a sus propiedades pulsando botón derecho / Properties sobre nuestro proyecto y accediendo a la sección Android de las preferencias. En dicha ventana podemos añadir una nueva librería en la sección inferior llamada Library. Cuando pulsamos el botón “Add…” nos aparecerá la librería recien importada y podremos seleccionarla directamente, añadiéndose a nuestra lista de librerías referenciadas por nuestro proyecto.

reference-library

Como último paso de configuración de nuestro proyecto, si queremos que nuestra aplicación se pueda ejecutar desde versiones “antiguas” de Android (concretamente desde la versión de Android 2.2) deberemos asegurarnos de que nuestro proyecto incluye la librería android-support-v4.jar, que debería aparecer si desplegamos las sección “Android Dependencies” o la carpeta “lib” de nuestro proyecto.

support-library

Las versiones más recientes de ADT incluyen por defecto esta librería en nuestros proyectos, pero si no está incluida podéis hacerlo mediante la opción del menú contextual “Android Tools / Add Support Library…”  sobre el proyecto, o bien de forma manual.

Y con esto hemos terminado de configurar todo lo necesario. Ya podemos escribir nuestro código. Y para este primer artículo sobre el tema nos vamos a limitar a mostrar un mapa en la pantalla principal de la aplicación. En artículos posteriores veremos como añadir otras opciones o elementos al mapa.

Para esto tendremos simplemente que añadir el control correspondiente al layout de nuestra actividad principal. En el caso de la nueva API v2 este “control” se añadirá en forma de fragment (de ahí que hayamos tenido que incluir la librería android-support para poder utilizarlos en versiones de Android anteriores a la 3.0) de un determinado tipo (concretamente de la nueva clase com.google.android.gms.maps.SupportMapFragment), quedando por ejemplo de la siguiente forma:

<?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"/>

Por supuesto, dado que estamos utilizando fragments, la actividad principal también tendrá que extender a FragmentActivity (en vez de simplemente Activity como es lo “normal”). Usaremos también la versión de FragmentActivity incluida en la librería android-support para ser compatibles con la mayoría de las versiones Android actuales.

public class MainActivity extends android.support.v4.app.FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
    }

...
}

Con esto, ya podríamos ejecutar y probar nuestra aplicación. En mi caso las pruebas las he realizado sobre un dispositivo físico con Android 2.2 ya que por el momento parece haber algunos problemas para hacerlo sobre el emulador. Por tanto tendréis que conectar vuestro dispositivo  al PC mediante el cable de datos e indicar a Eclipse que lo utilice para la ejecución de la aplicación.

Si ejecutamos el ejemplo deberíamos ver un mapa en la pantalla principal de la aplicación, sobre el que nos podremos mover y hacer zoom con los gestos habituales o utilizando los controles de zoom incluidos por defecto sobre el mapa.

captura-ejemplo

Con este artículo espero haber descrito todos los pasos necesarios para comenzar a utilizar los servicios de mapas de Google utilizando su nueva API Google Maps Android v2. Si tenéis cualquier duda o propuesta de mejora no dudéis en escribirlo en los comentarios.

Como habéis podido comprobar hay muchos preparativos que hacer, aunque ninguno de ellos de excesiva dificultad. En los próximos artículos aprenderemos a utilizar más características de la nueva API.

Puedes consultar y/o descargar el código completo de los ejemplos desarrollados en este artículo accediendo a la pagina del curso en GitHub.

, , , , , ,

96 Respuestas a Mapas en Android (Google Maps Android API v2) – I

  1. Jonay 09/03/2013 at 12:46 #

    Hola,
    me he dado cuenta que no se ha copiado la línea que puse que faltaba en el manifest:

    “”

    Saludos, espero que ahora se vea.

  2. Jonay 09/03/2013 at 12:50 #

    Parece ser que no puedo copiar directamente, básicamente deben añadir el uses-permission
    android.permission.ACCESS_NETWORK_STATE

    Pueden, verlo en la web de desarrolladores de google:
    https://developers.google.com/maps/documentation/android/start

  3. admin 09/03/2013 at 17:30 #

    Gracias Jonay, lo actualizo en el artículo. Saludos.

  4. Carlos 09/03/2013 at 20:09 #

    He hecho todo como me comentas pero nada me sigue saliendo la pantalla en blanco con los botones de zoom. verifique que solo tenga el servicio de maps para android, tambien verifique la debug.keystore sha1 y me sigue saliendo igual, las librerias las tengo, no se si deba agregar algo adicioal de opengl, ayuda please

  5. JDiego 12/03/2013 at 12:31 #

    Buenos días:
    Enhorabuena por el tutorial es increíble!
    He hecho una aplicación basándome en este tutorial y al instalarlo por usb me funciona perfectamente pero al subirlo al googleplay los mapas me salen blancos con los botones del zoom.
    ¿Qué podría ser?

  6. admin 12/03/2013 at 13:48 #

    Buenos días JDiego, la API Key generada para probar/depurar la aplicación en el emulador o por USB no te sirve para la aplicación publicada en el market, debes generar otra exclusiva para la aplicación final firmada. Probáblemente ése haya sido tu problema. Intentaré escribir cuanto antes un artículo sobre este tema y poner una nota en éste para evitar confusiones de este tipo. Saludos.

  7. JDiego 12/03/2013 at 17:16 #

    Muchas gracias por contestar.
    Pero y como debería hacerlo?

  8. JDiego 12/03/2013 at 18:07 #

    Creo que ya lo he solucionado. Estoy esperando a que me publiquen la actualización.

  9. JDiego 12/03/2013 at 20:40 #

    Ya por fin funciona!!!! si quereis ver la aplicación es esta: ¿Dónde aparqué? en Google Play! https://play.google.com/store/apps/details?id=com.jldes.dondeaparque

  10. ALG 13/03/2013 at 2:54 #

    me sale lo mismo cuando ejecuto me sale el mapa en blanco y solo el zoom nada mas le puse mi API de android todo diganme como puedo solucionarlo por favor hice todo lo que dice aqui y nada

  11. Eloweyn 13/03/2013 at 11:25 #

    A mi también me sale la pantalla en blanco con los botones del zoom. Alguna idea de qué es lo que puede haber ido mal? Lo he revisado todo y creo que es correcto.

    Muchas gracias!

  12. Eloweyn 13/03/2013 at 11:51 #

    Hola otra vez!
    Ahora ya no me sale la pantalla en blanco. He conseguido que me funcione. El problema ha venido por que en lugar de seleccionar el servicio “Google Maps Android API v2″ había seleccionado otro similar, el “Google Maps API v2″.

    Muchas gracias por los tutoriales, son geniales!!!

  13. Eloweyn 13/03/2013 at 11:56 #

    Hola por tercera vez.
    Se me había olvidado decir que ha habido otra cosa que me ha dado problemas: Tenía el móbil con la opción wi-fi activada, sin ninguna red wi-fi disponible. Una vez la he desactivado, se me ha mostrado el mapa correctamente.

  14. ALG 13/03/2013 at 19:03 #

    Hola Eloweyn ese mismo error tuve yo jaja ahora ya me funciona pero lo que quiero saber es por que cuando lo exporto como apk y lo instalo en mi celular no sale el mapa vuelve a salir blanco según he visto es otra api key exclusiva pero como obtenerla alguien sabe como puedo hacer que funcione en mi celular instalando ?

  15. Edgardo 14/03/2013 at 1:57 #

    Hola que tal, muchas gracias por el tutorial, pero hay una correcion que debes hacer, en el paso donde tienes que importar la libreria del play services, segun la pagina de android, se debe hacer una copia de esa carpeta y esa copia importarla a la app. Dejo link donde indican eso.

    http://developer.android.com/google/play-services/setup.html

    en el punto 1 donde dice : To set up a project to use the Google Play services SDK

    Saludos a todos!

  16. admin 14/03/2013 at 11:03 #

    Hola Edgardo, efectivamente es buena práctica (aunque no obligatorio) hacer una copia de la carpeta de Play Services para referenciarla desde tu proyecto. Pondré un anota en el atículo. Gracias por el comentario.

  17. ALG 14/03/2013 at 19:26 #

    Yo solo quiero saber que necesito para para que al momento de instalar mi aplicación despues de ser exportada funcione como cuando lo emulo, cuando emulo el google maps con mi celular por defecto ya se instala y asi funciona pero cuando exporto mi aplicacion como apk y lo pongo en la raiz de mi celular y al abrirlo se instala ya no me funciona sale de nuevo la pantalla blanca a que se debe, solo funciona cuando lo instalo emulando y no instalando sin emular

  18. AMS 20/03/2013 at 12:13 #

    Excelente post. La descripción de los pasos a seguir es clara y sencilla. Enhorabuena.

    Un saludo.

  19. Alberto 21/03/2013 at 15:08 #

    Hola, ante todo muchas gracias por los tutoriales. Estoy intentando ejecutar este primer ejemplo en un emulador de Android y no hay manera de que muestre los mapas. La aplicacion se ejecuta correctamente, pero solo se ve un fondo gris en vez del mapa. He seguido todos los pasos cuidadosamente y no hay manera. He probado con un emulador creado con Eclipse, y con una version de Android ejecutada como VM con VirtualBox, y no hay manera. He probado incluso a ejecutar los ejemplos que vienen con Google Play y tampoco me muestra ningun mapa (pero puedo “moverme” por el mapa, la aplicacion captura eventos, etc, pero sin mostrar nunca ningun mapa). Estoy atascado totalmente y no se como puedo solucionar esto, alguna idea? O es que no hay manera de ejecutar estas apps correctamente en un emulador? Estoy volviendome loco!!! Gracias de antemano.

  20. Fustigador 26/03/2013 at 13:14 #

    Hola, en primer lugar gracias por los tutoriales!

    En segundo lugar, una pregunta: Tengo que generar una nueva API Key para cada aplicación que haga? O con hacerlo una vez ya sirve? Gracias!

  21. Daniel 31/03/2013 at 11:23 #

    Fantástico articulo, me ha servido de mucho para conocer la nueva API de Google Maps

  22. Elias 02/04/2013 at 16:08 #

    Eres un genio, hace un tiempo pille tu libro en pdf, pero creo que en breve tendre que “renovarlo” comprandotelo again ;)

    En serio, esta guía es genial, me ha funcionado a la…. Segunda! (me equivoque de servicio xD)

    Para aquellos que solo os carga los botones y de fondo gris:

    Mirad que hay varios servicios de Google Maps.

    En concreto teneis que activar el que dice:

    Google Maps Android API v2

    Fijaos en lo de Android!!! ;)

    En fin, Gracias de nuevo!

  23. JDiego 09/04/2013 at 1:03 #

    Hola, ha habido algún cambio con la última actualización del sdk de? es que ya no me funciona

  24. Iyad 11/04/2013 at 2:12 #

    Segui tu tutorial al pie de la letra, pero lamentablemente no me muestra el mapa, solo los controles del zoom… y en el log aparece “04-10 22:12:24.400: E/Google Maps Android API(17675): Failed to load map. Could not contact Google servers.”

    He escogido correctamente el servicio de Google y ademas creado mi Api Key bien.

    Por favor necesito tu ayuda, Saludos y excelente pagina.

  25. damian 12/04/2013 at 11:00 #

    hola, muy bueno el tutorial.
    He intentado cargar la aplicacion tanto en el movil tanto en modo depuracion como creando el .apk e instalandolo y no me funciona en ninguno de los dos.No da errores de compilacion pero cuando la aplicacion se abre, me dice que se ha detenido la aplicacion y se cierra
    A alguien mas le pasa o si alguien sabe como solucionarlo que porfavor me lo diga que me estoy volviendo loco
    Gracias

  26. damian 12/04/2013 at 12:02 #

    hola, otra vez, ya he conseguido que se abra la aplicacion pero ahora me pasa lo mismo que he visto que le pasa a muchos,que se abre la aplicacion pero no muestra el mapa, sino que me muestra la pantalla en blanco y los botones de acercar y alejar
    Estoy usando la google api 16 y creo que todo lo demas bien configurado
    Ai alguien consiguio solucionar este problema porfavor que me lo dga que esto lo necesito para un tema de trabajo no por un hobby
    Gracias

  27. MillanImix 17/04/2013 at 0:20 #

    Muy chido el tuto, el fragment no me funcionó a la primera con el código del MainActivity, reemplace el código del MainActivity por el del tutorial de Maps Android API v2

    El último código de la siguiente página

    https://developers.google.com/maps/documentation/android/start#installing_the_google_maps_android_v2_api

    Muy buena página

  28. Alberto (otro) 17/04/2013 at 12:53 #

    Gracias Eloweyn

    A mí me había pasado lo mismo y me estaba volviendo loco.

    ¡Aseguraos que escogéis el servicio Google Maps Android API v2!

    ALG no funciona en tu celular porque el certificado con el que se firma la aplicación sólo es uno estándar que provee el SDK Android para desarrollarla (Debug). Si la quieres instalar, debes firmarla con un certificado digital propio.

    Gracias por el tutorial; es genial

  29. carol 17/04/2013 at 13:35 #

    Muchas gracias por el aporte! Estoy aprendiendo android gracias a ti! :D

  30. Miguel 17/04/2013 at 22:10 #

    Hola, soy nuevo en esto de android y necesito vuestra ayuda.

    Cómo puedo cargar un mapa en el que filtre solamente aquellos tipos de comercios que me interesan? Es decir, si quiero filtrar solo restaurantes qué API y de qué manera tengo que utilizarla.

    Mil gracias compañeros.
    Saludos.

  31. gaby 24/04/2013 at 19:45 #

    Hola, segui todos los pasos del tutorial, pero algo anda mal, cuando corro mi emulador me dice: “This app won’t run unless you update Google Play services” , baje Google services y todo como dice en el tutorial, los mapas que trae por default el emulador si los puedo ver bien, pero este que hice no :(, help me please!

  32. Marcos 27/04/2013 at 0:17 #

    Excelente muy buen post y muy bien explicado ya lo implemente. Saludos xd

  33. Miguel 27/04/2013 at 17:57 #

    Me pasa lo mismo que a gaby.
    He probado varias cosas, entre ellas pasar las librerías de play services al propio proyecto (esto es lo que decía edgardo), pero no hay forma de que funcione con el emulador.

    En cualquier caso en el teléfono funciona.

    Un apunte más: Al menos para desarrollo no es necesario generar el certificado y firmar la app. A mi me ha funcionado sin hacerlo. Únicamente puse la key que me dieron en la consola de APIs

    Gran tuto Salva.
    Muchas gracias.

  34. Edjoliver 29/04/2013 at 23:01 #

    Excelente… todos los tutoriales… Gracias

  35. Jose Antonio 01/05/2013 at 16:20 #

    Hola a todos.

    Antes que nada felicitar al autor por el trabajo que dedica para que otros podamos aprender. Esa es una labor digna de elogiar.

    Hasta ahora he seguido el tutorial, encontrándome algunos errores que más o menos he podido resolver siempre. Pero he llegado a este punto en el que no resuelvo un error que me da. He seguido, repasado los pasos y rehecho de nuevo este proyecto que apenas tiene código pero cuando abro la aplicación en el emulador se me cierra. En el Log Cat me sale el siguiente error:

    05-01 15:11:59.916: E/AndroidRuntime(1099): java.lang.RuntimeException: Unable to start activity ComponentInfo{domouso.mapas1/domouso.mapas1.MainActivity}: android.view.InflateException: Binary XML file line #1: Error inflating class fragment

    He probado en un emulador de un Nexus-One con Platform 2.2 y API level 8 y en otro Tablet con Platform 4.2.2 y level 17.

    Por otro lado tengo otra duda, no sé si tiene que ver con el error pero cuando le damos a importar la librería SDK de Google Play Services a nuestro Espacio de trabajo, y le damos al proyecto a Properties, añadir la librería Google-play-services-lib, al darle a ADD nos sale en el listado el nombre de la librería con el símbolito de OK verdecito. Si quiero repetir este paso y vuelvo al mismo cuadro de diálogo, veo que la librería está cargada pero en lugar del símbolo de OK verdecito tengo el aspa roja al lado.

    Gracias por leerme

  36. William Parra 02/05/2013 at 17:57 #

    Buenos días:

    Antes que todo agradecer el excelente trabajo del autor de esta serie de tutoriales. De otro lado insitir en las preguntas que han formulado anteriormente asociadas a que cuando corre la aplicación, aparece un mensaje: Esta aplicación no se ejecutará si no actualizas Google Play Services. Y en seguida el botón de actualizar.

  37. pelirroja191186 06/05/2013 at 13:33 #

    Hola josé antonio pudistes solucionar el error que te daba pues me pasa lo mismo pero no lo he logrado solucionar. saludos

  38. Jose Antonio 06/05/2013 at 18:58 #

    Que va pelirroja, no lo he solucionado. Si tú lo haces antes que yo dímelo y viceversa :)

  39. Daniela 07/05/2013 at 5:12 #

    Hola quisiera saber si alguno de ustedes, sabe como implementar las indicaciones de una ruta utilizando google maps, espero su ayuda y muchas gracias por el tutorial me sirvio mucho

  40. Edu 07/05/2013 at 12:30 #

    Buenas!! He conseguido que aparezca el mapa en el emulador. Tienes que darle una coordenada y decirle donde quieres que aparezca. Ahora funciona pero seguiré investigando a ver si se puede conseguir algo mejor ;)

    public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //————————–
    /* boton que muestra el mapa*/
    String geoUriString = “geo:0,0?q=Madrid”;
    Uri geoUri = Uri.parse(geoUriString);
    Intent intent = new Intent(Intent.ACTION_VIEW, geoUri);
    startActivity(intent);
    }

  41. zamudio 07/05/2013 at 18:30 #

    Tenes idea como se saca el sha1 en MAC?

Trackbacks/Pingbacks

  1. Mapas en Android (Google Maps Android API v2) – II | sgoliver.net blog - 09/12/2012

    [...] [...]

  2. Mapas en Android (Google Maps Android API v2) – III | sgoliver.net blog - 10/12/2012

    [...] los dos artículos anteriores (I y II) del curso hemos visto cómo crear aplicaciones utilizando la nueva versión de la API v2 de [...]

  3. Mapas en Android (I): Preparativos y ejemplo básico | sgoliver.net blog - 03/03/2013

    [...] versión de la API de Google Maps para Android. Tienes disponible tres nuevos artículos del curso (I, II, III) donde aprender a utilizar esta nueva [...]

  4. Mapas en Android (II): Control MapView | sgoliver.net blog - 03/03/2013

    [...] [...]

  5. Mapas en Android (III): Overlays (Capas) | sgoliver.net blog - 03/03/2013

    [...] [...]

Deja un comentario

Powered by WordPress. Designed by Woo Themes