Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Plug-in do Android para Gradle 3.4.0 (abril de 2019)
Esta versão do plug-in do Android requer o seguinte:
|
Versão mínima |
Versão padrão |
Observações |
Gradle |
5.1.1 |
5.1.1 |
Para saber mais, consulte Como atualizar o Gradle. Ao usar o Gradle 5.0 ou versões mais recentes, o tamanho padrão do heap de memória do daemon Gradle diminui de 1 GB para 512 MB. Isso pode gerar uma regressão de desempenho do build. Para substituir essa configuração padrão, especifique o tamanho do heap do daemon Gradle no arquivo gradle.properties do projeto. |
Ferramentas de build do SDK |
28.0.3 |
28.0.3 |
Instale ou configure as Ferramentas de build do SDK. |
Novos recursos
-
Novas configurações de dependência de verificação de lint: o
comportamento de lintChecks
mudou, e uma nova configuração de
dependência (lintPublish
) foi apresentada para oferecer
mais controle sobre as verificações de lint que são empacotadas nas bibliotecas
do Android.
-
lintChecks
: esta é uma configuração existente
necessária para verificações de lint que você queira executar somente ao criar
seu projeto localmente. Se você estava usando a
configuração de dependência lintChecks
anteriormente para incluir
verificações de lint no AAR publicado, vai precisar migrar essas dependências
para usar a nova configuração lintPublish
descrita abaixo.
-
lintPublish
: use esta nova configuração em projetos de
biblioteca para verificações de lint que você queira incluir no AAR publicado,
conforme mostrado abaixo. Isso significa que os projetos que consomem sua biblioteca
também aplicam essas verificações de lint.
O exemplo de código a seguir usa as duas configurações de dependência em um
projeto de biblioteca local do Android.
dependencies {
// Executes lint checks from the ':lint' project at build time.
lintChecks project(':lint')
// Packages lint checks from the ':lintpublish' in the published AAR.
lintPublish project(':lintpublish')
}
dependencies {
// Executes lint checks from the ':lint' project at build time.
lintChecks(project(":lint"))
// Packages lint checks from the ':lintpublish' in the published AAR.
lintPublish(project(":lintpublish"))
}
Mudanças de comportamento
-
Aviso de descontinuação do plug-in do recurso Apps instantâneos
Android: se você ainda estiver usando o
plug-in com.android.feature
para criar seu app instantâneo,
o Plug-in do Android para Gradle 3.4.0 vai mostrar um aviso de descontinuação.
Para garantir que seja possível criar seu app instantâneo em versões futuras do
plug-in, migre-o para o
plug-in de recurso dinâmico,
que também permite a publicação das suas experiências de apps instalados e
instantâneos de um único Android App Bundle.
-
R8 ativado por padrão: o R8 integra a simplificação,
redução, ofuscação, otimização e dexação em uma única etapa, o que resulta
em
melhorias significativas na performance
do build (em inglês). O R8 foi apresentado no Plug-in do Android para Gradle 3.3.0 e
agora está ativado por padrão nos projetos de biblioteca Android e em apps que
usam o plug-in 3.4.0 ou mais recente.
A imagem abaixo fornece uma visão geral de alto nível do processo de compilação
antes da inclusão do R8.
Agora, com o R8, a simplificação, redução, ofuscação, otimização e dexação (D8)
são todas concluídas em uma única etapa, conforme ilustrado abaixo.
Lembre-se de que o R8 foi projetado para funcionar com suas regras do ProGuard. Desse modo,
você provavelmente não precisa fazer nada para se beneficiar com o R8. No entanto,
como essa é uma tecnologia diferente do ProGuard e é projetada especificamente
para projetos Android, a redução e a otimização podem resultar na remoção de códigos
que o ProGuard talvez não removesse. Nessa situação improvável, talvez seja necessário
adicionar outras regras para manter esse código no resultado de build.
Se você tiver problemas ao usar o R8, leia as
Perguntas frequentes de compatibilidade do R8 (em inglês)
para conferir se há uma solução para o problema. Se nenhuma solução tiver sido documentada, informe um bug.
Você pode desativar o R8 adicionando uma das seguintes linhas ao arquivo
gradle.properties
do projeto:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
Observação: para determinado tipo de build, se você definir
useProguard
como false
no arquivo
build.gradle
do módulo do app, o Plug-in do Android para Gradle vai usar o R8
para reduzir o código desse tipo de build, independente de você
ter ou não desativado o R8 no arquivo gradle.properties
.
-
O uso de
ndkCompile
foi descontinuado: agora você vai encontrar um
erro de build se tentar usar o ndkBuild
para compilar
bibliotecas nativas. Em vez disso, use o CMake ou o ndk-build para
adicionar código C e C++ ao seu
projeto.
Problemas conhecidos
-
O uso correto de nomes de pacotes únicos não é obrigatório atualmente,
mas se torna mais rigoroso em versões mais recentes do plug-in. No Plug-in do Android para Gradle
versão 3.4.0, você pode conferir se o
projeto declara nomes de pacotes aceitáveis adicionando a linha abaixo ao
seu arquivo gradle.properties
.
android.uniquePackageNames = true
Para saber mais sobre como definir um nome de pacote com o Plug-in
do Android para Gradle, consulte
Definir o ID do aplicativo.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-08-30 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-30 UTC."],[],[],null,["\u003cbr /\u003e\n\nAndroid Gradle Plugin 3.4.0 (April 2019)\n\nThis version of the Android plugin requires the following:\n\n| | Minimum version | Default version | Notes |\n|----------------:|:---------------:|:---------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|\n| Gradle | 5.1.1 | 5.1.1 | To learn more, see [updating Gradle](/build/releases/gradle-plugin?buildsystem=ndk-build#updating-gradle). When using Gradle 5.0 and higher, the default Gradle daemon memory heap size decreases from 1 GB to 512 MB. This might result in a build performance regression. To override this default setting, specify the Gradle daemon heap size in your project's gradle.properties file. |\n| SDK Build Tools | 28.0.3 | 28.0.3 | [Install](/studio/intro/update#sdk-manager) or [configure](/tools/releases/build-tools) SDK Build Tools. |\n\n**3.4.3 (July 2020)**\n\n\nThis minor update supports compatibility with new default settings and\nfeatures for\n[package visibility\nin Android 11](/about/versions/11/privacy/package-visibility).\n\n\nSee the [4.0.1 release notes](#4.0.1) for details.\n\n**3.4.2 (July 2019)**\n\n\nThis minor update supports Android Studio 3.4.2 and includes various bug\nfixes and performance improvements.\nTo see a list of noteable bug fixes, read the related post on the\n[Release Updates blog](https://androidstudio.googleblog.com/2019/07/android-studio-342-available.html).\n\n**3.4.1 (May 2019)**\n\n\nThis minor update supports Android Studio 3.4.1 and includes various bug\nfixes and performance improvements.\nTo see a list of noteable bug fixes, read the related post on the\n[Release Updates blog](https://androidstudio.googleblog.com/2019/05/android-studio-341-available.html).\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nNew features\n\n- **New lint check dependency configurations:** The\n behavior of `lintChecks` has changed and a new dependency\n configuration, `lintPublish`, has been introduced to give\n you more control over which lint checks are packaged in your Android\n libraries.\n\n - `lintChecks`: This is an existing configuration that you should use for lint checks you want to only run when building your project locally. If you were previously using the `lintChecks` dependency configuration to include lint checks in the published AAR, you need to migrate those dependencies to instead use the new `lintPublish` configuration described below.\n - `lintPublish`: Use this new configuration in library projects for lint checks you want to include in the published AAR, as shown below. This means that projects that consume your library also apply those lint checks.\n\n The following code sample uses both dependency configurations in a\n local Android library project. \n\n ```groovy\n dependencies {\n // Executes lint checks from the ':lint' project at build time.\n lintChecks project(':lint')\n // Packages lint checks from the ':lintpublish' in the published AAR.\n lintPublish project(':lintpublish')\n }\n \n ``` \n\n ```kotlin\n dependencies {\n // Executes lint checks from the ':lint' project at build time.\n lintChecks(project(\":lint\"))\n // Packages lint checks from the ':lintpublish' in the published AAR.\n lintPublish(project(\":lintpublish\"))\n }\n \n ```\n - In general, packaging and signing tasks should see an overall build\n speed improvement. If you notice a performance regression related to\n these tasks, please [report a bug](/studio/report-bugs).\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nBehavior changes\n\n- **Android Instant Apps Feature plugin deprecation\n warning:** If you're still using the\n `com.android.feature` plugin to build your instant app,\n Android Gradle plugin 3.4.0 will give throw you a deprecation warning.\n To make sure you can still build you instant app on future versions of\n the plugin, migrate your instant app to using\n [the dynamic feature plugin](/studio/projects/dynamic-delivery),\n which also allows you to publish both your installed and instant app\n experiences from a single Android App Bundle.\n\n- **R8 enabled by default:** R8 integrates desugaring,\n shrinking, obfuscating, optimizing, and dexing all in one step---resulting\n in\n [noticeable build performance\n improvements](https://www.google.com/url?q=https://android-developers.googleblog.com/2018/11/r8-new-code-shrinker-from-google-is.html&sa=D&ust=1551922493258000&usg=AFQjCNH0N1wuMX645n7giw0wjikzjm3WCA). R8 was introduced in Android Gradle plugin 3.3.0 and\n is now enabled by default for both app and Android library projects\n using plugin 3.4.0 and higher.\n\nThe image below provides a high-level overview of the compile process\nbefore R8 was introduced.\n\nNow, with R8, desugaring, shrinking, obfuscating, optimizing, and dexing (D8)\nare all completed in one step, as illustrated below.\n\nKeep in mind, R8 is designed to work with your existing ProGuard rules, so\nyou'll likely not need to take any actions to benefit from R8. However,\nbecause it's a different technology to ProGuard that's designed specifically\nfor Android projects, shrinking and optimization may result in removing code\nthat ProGuard may have not. So, in this unlikely situation, you might need\nto add additional rules to keep that code in your build output.\n\nIf you experience issues using R8, read the\n[R8 compatibility FAQ](https://r8.googlesource.com/r8/+/refs/heads/master/compatibility-faq.md)\nto check if there's a solution to your issue. If a solution isn't documented,\nplease [report a bug](https://issuetracker.google.com/issues/new?component=326788&template=1025938).\nYou can disable R8 by adding one of the following lines to your project's\n`gradle.properties` file: \n\n # Disables R8 for Android Library modules only.\n android.enableR8.libraries = false\n # Disables R8 for all modules.\n android.enableR8 = false\n \n \n**Note:** For a given build type, if you set\n`useProguard` to `false` in your app\nmodule's `build.gradle` file, the Android Gradle plugin uses R8\nto shrink your app's code for that build type, regardless of whether you\ndisable R8 in your project's `gradle.properties` file.\n\n- **`ndkCompile` is deprecated:** You now get a build error if you try to use `ndkBuild` to compile your native libraries. You should instead use either CMake or ndk-build to [Add C and C++ code to your\n project](/studio/projects/add-native-code).\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nKnown issues\n\n- The correct usage of unique package names are currently not enforced\n but will become more strict on later versions of the plugin. On Android\n Gradle plugin version 3.4.0, you can opt-in to check whether your\n project declares acceptable package names by adding the line below to\n your `gradle.properties` file.\n\n android.uniquePackageNames = true\n \n \n To learn more about setting a package name through the Android Gradle\n plugin, see\n [Set the application ID](/studio/build/configure-app-module#set_the_application_id).\n\n\u003cbr /\u003e"]]