Configurar um projeto do Android Studio

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:

  1. 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 bloco pluginManagement. O bloco pluginManagement precisa aparecer antes de qualquer outra instrução no script.
    pluginManagement {
        repositories {
            gradlePluginPortal()
            google()
            mavenCentral()
        }
    } 
  2. 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 bloco dependencyResolutionManagement:
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            google()
            mavenCentral()
        }
    } 
  3. 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")
    }
  4. No arquivo build.gradle no nível do módulo, defina compileSdk e minSdk como os seguintes valores:

    Groovy

    android {
        compileSdk 34
    
        defaultConfig {
            minSdk 19
            // ...
        }
    }

    Kotlin

    android {
        compileSdk = 34
    
        defaultConfig {
            minSdk = 19
            // ...
        }
    }
  5. Na seção buildFeatures do arquivo build.gradle no nível do módulo, adicione a classe BuildConfig, 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:

  1. No Android Studio, abra o arquivo de nível superior build.gradle ou build.gradle.kts e adicione o seguinte código ao elemento dependencies em buildscript.

    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")
        }
    }
    
  2. Depois, abra o arquivo build.gradle no nível do módulo e adicione o seguinte código ao elemento plugins.

    Groovy

    plugins {
        // ...
        id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
    }

    Kotlin

    plugins {
        id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
    }
  3. No arquivo build.gradle no nível do módulo, defina targetSdk e compileSdk como 34.
  4. Salve o arquivo e sincronize seu projeto com o Gradle.
  5. Abra o arquivo secrets.properties no seu diretório de nível superior e adicione o código a seguir. Substitua YOUR_API_KEY pela sua chave de API. Armazene sua chave nesse arquivo porque secrets.properties não é verificado em um sistema de controle de versões.
    MAPS_API_KEY=YOUR_API_KEY
  6. Salve o arquivo.
  7. Crie o arquivo local.defaults.properties no seu diretório de nível superior, na mesma pasta que o arquivo secrets.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 omite secrets.properties e ainda não tiver criado um arquivo secrets.properties localmente para fornecer sua chave de API.

  8. Salve o arquivo.
  9. No seu arquivo AndroidManifest.xml, vá até com.google.android.geo.API_KEY e atualize android: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 name com.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.

  10. In Android Studio, open your module-level build.gradle or build.gradle.kts file and edit the secrets property. If the secrets property does not exist, add it.

    Edit the properties of the plugin to set propertiesFileName to secrets.properties, set defaultPropertiesFileName to local.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ão ACCESS_FINE_LOCATION, que fornece a localização exata do dispositivo, e ACCESS_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 elemento manifest:

<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 elemento manifest.

<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> do AndroidManifest.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.