Nesta página, descrevemos como configurar um projeto do Android Studio para usar o SDK do Maps para Android sem o modelo do Google Maps detalhado no guia de início rápido.
O modelo do Google Maps configura e adiciona automaticamente um mapa básico a um novo projeto do Android Studio. No entanto, você também pode adicionar um mapa a um projeto Android com um modelo diferente do Android Studio. Para fazer isso, é preciso configurar manualmente seu projeto e adicionar o mapa.
Etapa 1: configurar o Android Studio
Este documento descreve um ambiente de desenvolvimento usando o Android Studio Hedgehog e a versão 8.2 do Plug-in do Android para Gradle.
Etapa 2: configurar o SDK
A biblioteca do SDK do Maps para Android está disponível no repositório Maven do Google. Para adicionar o SDK ao app, faça o seguinte:
- No arquivo
settings.gradle
de nível superior, inclua o portal do plug-in do Gradle, o repositório Maven do Google e o repositório Maven central no blocopluginManagement
. O blocopluginManagement
precisa aparecer antes de qualquer outra instrução no script.pluginManagement { repositories { gradlePluginPortal() google() mavenCentral() } }
- No arquivo
settings.gradle
de nível superior, inclua o repositório Maven do Google e o repositório Maven central (links em inglês) no blocodependencyResolutionManagement
:dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } }
- No arquivo
build.gradle
no nível do módulo, adicione a dependência do Google Play Services no SDK do 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") }
- No arquivo
build.gradle
no nível do módulo, definacompileSdk
eminSdk
como os seguintes valores:Groovy
android { compileSdk 34 defaultConfig { minSdk 19 // ... } }
Kotlin
android { compileSdk = 34 defaultConfig { minSdk = 19 // ... } }
- Na seção
buildFeatures
do arquivobuild.gradle
no nível do módulo, adicione a classeBuildConfig
, que você pode usar para acessar os valores de metadados definidos posteriormente neste procedimento:Groovy
android { // ... buildFeatures { buildConfig true // ... } }
Kotlin
android { // ... buildFeatures { buildConfig = true // ... } }
Etapa 3: adicionar sua chave de API ao projeto
Nesta seção, descrevemos como armazenar sua chave de API para que ela possa ser referenciada com segurança pelo seu app. Não faça a verificação dela no sistema de controle de versões. Recomendamos armazenar no arquivo secrets.properties
, que fica no diretório raiz do projeto. Para saber mais sobre o arquivo secrets.properties
, consulte Arquivos de propriedades do Gradle.
Se quiser otimizar essa tarefa, use o plug-in Secrets Gradle para Android.
Para instalar esse plug-in no seu projeto do Google Maps:
-
No Android Studio, abra o arquivo de nível superior
build.gradle
oubuild.gradle.kts
e adicione o seguinte código ao elementodependencies
embuildscript
.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") } }
-
Depois, abra o arquivo
build.gradle
no nível do módulo e adicione o seguinte código ao elementoplugins
.Groovy
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
Kotlin
plugins { id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
- No arquivo
build.gradle
no nível do módulo, definatargetSdk
ecompileSdk
como 34. - Salve o arquivo e sincronize seu projeto com o Gradle.
-
Abra o arquivo
secrets.properties
no seu diretório de nível superior e adicione o código a seguir. SubstituaYOUR_API_KEY
pela sua chave de API. Armazene sua chave nesse arquivo porquesecrets.properties
não é verificado em um sistema de controle de versões.MAPS_API_KEY=YOUR_API_KEY
- Salve o arquivo.
-
Crie o arquivo
local.defaults.properties
no seu diretório de nível superior, na mesma pasta que o arquivosecrets.properties
, e depois adicione o seguinte código.MAPS_API_KEY=DEFAULT_API_KEY
O objetivo desse arquivo é oferecer um local de backup para a chave da API se o arquivo
secrets.properties
não for encontrado, para que os builds não apresentem falha. Isso pode acontecer se você clonar o app de um sistema de controle de versões que omitesecrets.properties
e ainda não tiver criado um arquivosecrets.properties
localmente para fornecer sua chave de API. - Salve o arquivo.
-
No seu arquivo
AndroidManifest.xml
, vá atécom.google.android.geo.API_KEY
e atualizeandroid:value attribute
. Se a tag<meta-data>
não existe, crie-a como um elemento filho da tag<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.*" }
Etapa 4: atualizar o manifesto do app
Nesta seção, falamos sobre as configurações que você pode adicionar ao seu arquivo
AndroidManifest.xml
.Número da versão do Google Play Services
Inclua a seguinte declaração no elemento
application
. Isso incorpora a versão do Google Play Services com que o app foi compilado.<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
Permissão de localização
Caso o app tenha que acessar o local do usuário, você precisa pedir a permissão no arquivo
AndroidManifest.xml
. As opções sãoACCESS_FINE_LOCATION
, que fornece a localização exata do dispositivo, eACCESS_COARSE_LOCATION
, que tem uma precisão menor. Para saber mais detalhes, consulte o guia de dados de localização.Para pedir a permissão de
ACCESS_FINE_LOCATION
, adicione este código ao elementomanifest
:<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Permissão de armazenamento externo
Se você segmentar a versão 8.3 ou mais recente do SDK do Google Play Services, a permissão
WRITE_EXTERNAL_STORAGE
deixa de ser necessária. Caso segmente versões anteriores do SDK do Google Play Services, você precisa pedir a permissão WRITE_EXTERNAL_STORAGE no elementomanifest
.<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Biblioteca legada Apache HTTP
Se você estiver usando a
com.google.android.gms:play-services-maps:16.0.0
ou versões anteriores e seu app segmentar o nível da API 28 (Android 9.0) ou mais recente, vai ser necessário incluir a seguinte declaração no elemento<application>
doAndroidManifest.xml
. Caso contrário, pule esta declaração.<uses-library android:name="org.apache.http.legacy" android:required="false" />
Etapa 5: configurar um dispositivo Android
Para executar um app que usa o SDK do Maps para Android, faça a implantação dele em um dispositivo compatível ou Android Emulator com base no Android 4.0 ou uma versão mais recente que inclua as APIs do Google.
- Para usar um dispositivo Android, siga as instruções no artigo Executar apps em um dispositivo de hardware.
- Para usar o Android Emulator, crie um dispositivo virtual e instale o emulador usando o AVD Manager que acompanha o Android Studio.
Etapa 6: como opção, verifique o suporte do Google Play Services
O SDK do Maps para Android requer que o dispositivo no qual seu app está implantado tenha o Google Play Services instalado. O Google fornece um método que pode ser chamado a partir do seu app para verificação. Para mais informações, consulte Verificar se o Google Play Services está instalado.
Próximas etapas
Depois de configurar o projeto, você poderá adicionar um mapa.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-05-09 UTC.
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Não contém as informações de que eu preciso" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Muito complicado / etapas demais" },{ "type": "thumb-down", "id": "outOfDate", "label":"Desatualizado" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema na tradução" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Problema com as amostras / o código" },{ "type": "thumb-down", "id": "otherDown", "label":"Outro" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Fácil de entender" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Meu problema foi resolvido" },{ "type": "thumb-up", "id": "otherUp", "label":"Outro" }]