Erro Gradle no Android: No signature of method: build_*.android() — como corrigir?

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Já encontrou «No signature of method: build_*.android()»? Você não está sozinho

\n

Se você já abriu o Android Studio, fez alterações no arquivo build.gradle.kts e recebeu um misterioso erro vermelho ERROR: No signature of method: build_ap86oam3dut3pxce3x49rdtma.android() — bem-vindo ao clube. Este problema com o Gradle é um dos mais populares no Stack Overflow (milhares de visualizações!) e pode desestabilizar até mesmo um desenvolvedor experiente.

\n

A boa notícia: o erro quase sempre tem a mesma causa e é corrigido em alguns minutos. Neste artigo, vamos analisá-lo usando o Kotlin DSL (ou seja, build.gradle.kts), mostrar por que ele ocorre e fornecer um plano de ação passo a passo. Vamos lá!

\n\n

O que esse erro realmente significa?

\n

Gradle é um sistema de build que lê scripts build.gradle (Groovy) ou build.gradle.kts (Kotlin). Quando você vê No signature of method: build_*.android(), significa que o Gradle não consegue encontrar a função android { ... } no contexto do projeto raiz.

\n

Simplificando: você está tentando configurar parâmetros específicos do Android (compileSdk, buildTypes, defaultConfig) em um script que não é um módulo de aplicativo ou biblioteca. Geralmente, isso acontece no raiz build.gradle.kts, onde devem estar apenas as configurações para todos os projetos (plugins, repositórios), e não a configuração do Android.

\n\n

Situação típica (exemplo em Kotlin DSL)

\n

Imagine que você abre o arquivo raiz build.gradle.kts e escreve algo como:

\n
// ❌ Código incorreto no build.gradle.kts raiz\nandroid {\n    compileSdk = 34\n    defaultConfig {\n        minSdk = 24\n    }\n}\n
\n

Após a sincronização do Gradle, o erro aparece. Por quê? Porque o script raiz não conhece o Android — ele é responsável pela configuração geral, não por um módulo específico.

\n\n

Correção passo a passo do erro

\n

Vamos entender como estruturar corretamente os arquivos de build em um projeto Kotlin. Apenas dois passos.

\n\n

Passo 1: Verifique qual arquivo você está editando

\n

Abra o painel Project no Android Studio (geralmente à esquerda). Encontre dois arquivos:

\n
    \n
  • build.gradle.kts (raiz, localizado na raiz do projeto)
  • \n
  • app/build.gradle.kts (arquivo do módulo app)
  • \n
\n

O erro ocorre se você acidentalmente colocou o bloco android { ... } no arquivo raiz. Certifique-se de que está trabalhando com app/build.gradle.kts.

\n\n

Passo 2: Mova o código para o arquivo correto (se necessário)

\n

Se você encontrou o bloco android no build.gradle.kts raiz — recorte-o e cole no app/build.gradle.kts. Veja como deve ser a versão correta para o módulo app:

\n\n
// ✅ app/build.gradle.kts correto\nplugins {\n    id("com.android.application")\n    id("org.jetbrains.kotlin.android")\n}\n\nandroid {\n    namespace = "com.example.myapp"\n    compileSdk = 34\n\n    defaultConfig {\n        applicationId = "com.example.myapp"\n        minSdk = 24\n        targetSdk = 34\n        versionCode = 1\n        versionName = "1.0"\n    }\n\n    buildTypes {\n        release {\n            isMinifyEnabled = false\n            proguardFiles(\n                getDefaultProguardFile("proguard-android-optimize.txt"),\n                "proguard-rules.pro"\n            )\n        }\n    }\n\n    compileOptions {\n        sourceCompatibility = JavaVersion.VERSION_1_8\n        targetCompatibility = JavaVersion.VERSION_1_8\n    }\n\n    kotlinOptions {\n        jvmTarget = "1.8"\n    }\n}\n\ndependencies {\n    implementation("androidx.core:core-ktx:1.12.0")\n    implementation("androidx.appcompat:appcompat:1.6.1")\n    // ... outras dependências\n}\n
\n\n

E o build.gra

Blogs

Book Recommendations