En esta página, se explica cómo configurar un proyecto de Android Studio para utilizar el SDK de Maps para Android sin la plantilla de Google Maps que se detalla en la Guía de inicio rápido.
La plantilla de Google Maps configura automáticamente un proyecto de Android Studio nuevo y agrega un mapa básico. Sin embargo, también puedes agregar un mapa a un proyecto de Android que utilice una plantilla de Android Studio diferente. Para ello, debes configurar tu proyecto manualmente y, luego, agregar el mapa.
Paso 1: Configura Android Studio
En este documento, se describe un entorno de desarrollo que utiliza Android Studio Hedgehog y el complemento de Android para Gradle versión 8.2.
Paso 2: Configura el SDK
La biblioteca del SDK de Maps para Android está disponible a través del repositorio de Maven de Google. Para agregar el SDK a tu app, haz lo siguiente:
- En el archivo
settings.gradle
de nivel superior, incluye el portal de complementos de Gradle, el repositorio de Maven de Google y el repositorio central de Maven debajo del bloquepluginManagement
. El bloquepluginManagement
debe aparecer antes que cualquier otra sentencia en la secuencia de comandos.pluginManagement { repositories { gradlePluginPortal() google() mavenCentral() } }
- En el archivo
settings.gradle
de nivel superior, incluye el repositorio de Maven de Google y el repositorio central de Maven debajo del bloquedependencyResolutionManagement
:dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } }
- En el archivo
build.gradle
a nivel del módulo, agrega la dependencia de Servicios de Google Play para el SDK de Maps para Android.Groovy
dependencies { // Maps SDK for Android implementation 'com.google.android.gms:play-services-maps:18.2.0' }
Kotlin
dependencies { // Maps SDK for Android implementation("com.google.android.gms:play-services-maps:18.2.0") }
- En tu archivo
build.gradle
a nivel del módulo, configuracompileSdk
yminSdk
con los siguientes valores:Groovy
android { compileSdk 34 defaultConfig { minSdk 19 // ... } }
Kotlin
android { compileSdk = 34 defaultConfig { minSdk = 19 // ... } }
- En la sección
buildFeatures
de tu archivobuild.gradle
a nivel del módulo, agrega la claseBuildConfig
para acceder a valores de metadatos definidos más adelante en este procedimiento:Groovy
android { // ... buildFeatures { buildConfig true // ... } }
Kotlin
android { // ... buildFeatures { buildConfig = true // ... } }
Paso 3: Agrega tu clave de API al proyecto
En esta sección, se describe cómo almacenar tu clave de API para que tu app pueda hacer referencia a ella de manera segura. No debes incluir la clave de API en el sistema de control de versión, por lo que te recomendamos almacenarla en el archivo secrets.properties
, que se encuentra en el directorio raíz de tu proyecto. Para obtener más información sobre el archivo secrets.properties
, consulta los archivos de propiedades de Gradle.
Para optimizar esta tarea, te recomendamos que uses el complemento Secrets Gradle para Android.
Si deseas instalar el complemento Secrets Gradle para Android en tu proyecto de Google Maps, haz lo siguiente:
-
En Android Studio, abre tu archivo
build.gradle
obuild.gradle.kts
de nivel superior y agrega el siguiente código al elementodependencies
enbuildscript
.Groovy
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
-
Abre el archivo
build.gradle
a nivel del módulo y agrega el siguiente código al elementoplugins
.Groovy
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
Kotlin
plugins { id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
- En tu archivo
build.gradle
a nivel del módulo, asegúrate de quetargetSdk
ycompileSdk
estén establecidos en 34. - Guarda el archivo y sincroniza tu proyecto con Gradle.
-
Abre el archivo
secrets.properties
en tu directorio de nivel superior y agrega el siguiente código. ReemplazaYOUR_API_KEY
por tu clave de API. Almacena tu clave en este archivo, ya quesecrets.properties
no se registra en un sistema de control de versión.MAPS_API_KEY=YOUR_API_KEY
- Guarda el archivo.
-
Crea el archivo
local.defaults.properties
en tu directorio de nivel superior, en la misma carpeta en la que se encuentra el archivosecrets.properties
, y agrega el siguiente código.MAPS_API_KEY=DEFAULT_API_KEY
El propósito de este archivo es proporcionar una ubicación de copia de seguridad de la clave de API si no se encuentra el archivo
secrets.properties
, de modo que no fallen las compilaciones. Esto puede ocurrir si clonas la app desde un sistema de control de versión que omitesecrets.properties
y aún no creaste un archivosecrets.properties
localmente para proporcionar tu clave de API. - Guarda el archivo.
-
En tu archivo
AndroidManifest.xml
, ve acom.google.android.geo.API_KEY
y actualizaandroid:value attribute
. Si la etiqueta<meta-data>
no existe, créala como un elemento secundario de la etiqueta<application>
.<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
Note:
com.google.android.geo.API_KEY
is the recommended metadata name for the API key. A key with this name can be used to authenticate to multiple Google Maps-based APIs on the Android platform, including the Maps SDK for Android. For backwards compatibility, the API also supports the namecom.google.android.maps.v2.API_KEY
. This legacy name allows authentication to the Android Maps API v2 only. An application can specify only one of the API key metadata names. If both are specified, the API throws an exception. -
In Android Studio, open your module-level
build.gradle
orbuild.gradle.kts
file and edit thesecrets
property. If thesecrets
property does not exist, add it.Edit the properties of the plugin to set
propertiesFileName
tosecrets.properties
, setdefaultPropertiesFileName
tolocal.defaults.properties
, and set any other properties.Groovy
secrets { // Optionally specify a different file name containing your secrets. // The plugin defaults to "local.properties" propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
Kotlin
secrets { // Optionally specify a different file name containing your secrets. // The plugin defaults to "local.properties" propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
Paso 4: Actualiza el manifiesto de la app
En esta sección, se explica qué parámetros de configuración debes agregar al archivo
AndroidManifest.xml
.Número de versión de Servicios de Google Play
Agrega la siguiente declaración en el elemento
application
. Esto incorporará la versión de Servicios de Google Play con la que se compiló la app.<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
Permiso de ubicación
Si tu app necesita acceder a la ubicación del usuario, debes solicitar el permiso de ubicación en el archivo
AndroidManifest.xml
. Las opciones sonACCESS_FINE_LOCATION
, que proporciona la ubicación exacta del dispositivo, yACCESS_COARSE_LOCATION
, que es menos precisa. Para obtener más detalles, consulta la guía Datos de ubicación.Para solicitar el permiso
ACCESS_FINE_LOCATION
, agrega este código al elementomanifest
:<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Permiso de almacenamiento externo
Si planeas utilizar la versión 8.3 o una posterior del SDK de Servicios de Google Play, no necesitas el permiso
WRITE_EXTERNAL_STORAGE
. Si planeas usar versiones anteriores del SDK de Servicios de Google Play, debes solicitar el permiso WRITE_EXTERNAL_STORAGE en el elementomanifest
.<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Biblioteca Apache HTTP Legacy
Si utilizas
com.google.android.gms:play-services-maps:16.0.0
o versiones anteriores, y tu app tiene como objetivo el nivel de API 28 (Android 9.0) o uno posterior, debes incluir la siguiente declaración en el elemento<application>
del archivoAndroidManifest.xml
. De lo contrario, omite esta declaración.<uses-library android:name="org.apache.http.legacy" android:required="false" />
Paso 5: Configura un dispositivo Android
Para ejecutar una app que usa el SDK de Maps para Android, debes implementarla en un dispositivo Android o en un emulador de Android que se base en Android 4.0 o posterior y que incluya las APIs de Google.
- Si deseas usar un dispositivo Android, sigue las instrucciones que se indican en Cómo ejecutar apps en un dispositivo de hardware.
- Para usar un emulador de Android, puedes crear un dispositivo virtual y, luego, instalar el emulador usando el Administrador de dispositivos virtuales de Android (AVD) incluido con Android Studio.
Paso 6: Opcionalmente, verifica la compatibilidad de los Servicios de Play
El SDK de Maps para Android requiere que el dispositivo en el que implementas tu aplicación tenga los Servicios de Google Play instalados. Google ofrece un método al que puedes llamar desde tu app para verificar esto. Para obtener más información, consulta Verifica si los Servicios de Google Play están instalados.
Próximos pasos
Una vez que tu proyecto esté configurado, podrás agregar un mapa.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-05-09 (UTC)
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Falta la información que necesito" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Muy complicado o demasiados pasos" },{ "type": "thumb-down", "id": "outOfDate", "label":"Desactualizado" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema de traducción" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Problema con las muestras o los códigos" },{ "type": "thumb-down", "id": "otherDown", "label":"Otro" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Fácil de comprender" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Resolvió mi problema" },{ "type": "thumb-up", "id": "otherUp", "label":"Otro" }]