O plug-in é muito antigo, atualize para uma versão mais recente ou defina a variável de ambiente ANDROID_DAILY_OVERRIDE como


176

hoje, acabei de importar um aplicativo de amostra do Android SDK como um módulo no meu projeto (análise) e, de repente, recebi esse erro gradle ao tentar sincronizá-lo: Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE envrinment variable to...

Este é o meu gradlearquivo de aplicativo :

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.0"
    defaultConfig {
        applicationId "xxx.xxxxxx.xxxxx"
        versionCode 1
        versionName '1'
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 1
        versionName '1'
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }


    dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile 'com.google.android.gms:play-services:6.5.87'
    compile 'com.android.support:recyclerview-v7:21.0.0'
    compile 'com.android.support:cardview-v7:21.0.0'
    compile 'com.facebook.android:facebook-android-sdk:3.21.1'
    testCompile 'junit:junit:4.12'
    compile project(':volley')
}

Você tem alguma idéia de qual pode ser a causa (estou usando o plugin versão 1.1.0-rc1 e a gradleversão 2.2 e Android Studioversão 1.1.0)?

EDITAR:

Este é o meu top build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.0-rc1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

4
Você precisa do Gradle 2.2.1 para Android Studio 1.1.0. O plugin Gradle for Android 1.1 já está disponível, portanto você não precisa mais do -rc1.
CommonsWare 15/03/2015

Antes de tudo, obrigado pela sua resposta imediata, tentarei alterar as configurações do projeto e publicarei os resultados aqui. Obrigado novamente! :-)
Mario Norato 15/03

1
Funcionou! Acabei de excluir a parte "-rc1" do caminho de classe. Agora está sincronizado. Obrigado novamente! PS: Não sou muito bom em usar o stackoverflow. Como faço para votar na sua resposta ou marcá-la como correta?
Mario Norato 15/03

1
você pode sempre encontrar mais recente versão Gradle aqui developer.android.com/tools/revisions/gradle-plugin.html
Bharatesh

Que rude para o Android Studio. Se algo é gerado automaticamente a partir da GUI, NUNCA precisa da assistência do programador.
Camaleão

Respostas:


132

Assim como o CommonsWare sugeriu, verifique se você possui o Gradle 2.2.1+ (o mais recente é 2.3).

Atualize seu Android Studio, mas aqui estão os "plugins" que precisam ser atualizados:

Topo build.gradle:

Mudança:

classpath 'com.android.tools.build:gradle:1.1.0-rc1'

Para:

classpath 'com.android.tools.build:gradle:1.1.3' // latest 1.5.0

App build.gradle:

Mudança:

compile 'com.android.support:recyclerview-v7:21.0.0'
compile 'com.android.support:cardview-v7:21.0.0'

Para:

compile 'com.android.support:recyclerview-v7:22.0.0' // latest 23.1.1
compile 'com.android.support:cardview-v7:22.0.0' // latest 23.1.1

Gradle: https://gradle.org/downloads

Sempre verifique o Android SDK Manager para obter as últimas revisões:

Plug-in de ferramentas de compilação do Android: http://tools.android.com/tech-docs/new-build-system

Bibliotecas de suporte do Android: http://developer.android.com/tools/support-library/features.html

Para visualizar as versões mais recentes do plug-in, consulte a página do Bintray Jcenter diretamente: https://bintray.com/android/android-tools/com.android.tools.build.gradle/view .


Ok, depois de ler a resposta do Commonsware, tirei a parte -rc1 do classpath e depois da indexação agora parece funcionar bem (ai, perdi quase 2 horas para não incomodar nenhum de vocês aqui no estouro de pilha :-)), agora eu tentarei atualizar o plugin como você sugere. :-) Obrigado novamente.
Mario Norato 15/03

1
@MarioNorato Não tem problema, vou postar os links para onde você pode encontrar a versão mais recente o tempo todo. Além disso, o Android studio deve avisá-lo sobre a versão mais recente se você mantiver o gerenciador do SDK do Android atualizado.
Jared Burrows

teve o mesmo problema. mover o plugin de 1.4. + para 1.3. + fez o truque. Também estou usando Gradle 2.8 e tem um script que sempre faz o download da versão mais recente, aparentemente, tem o seu preço ...
codeScriber

18
Eu tive que ir para https://jcenter.bintray.com/com/android/tools/build/gradle/descobrir qual era a versão mais recente do gradle. A atualização do meu arquivo principal com a versão mais recente disponível desse URL corrigiu o problema. Sua solução não me forneceu informações suficientes para encontrar isso!
Exhuma

1
Vale a pena vincular a este local (IMHO, é melhor que o site da Gradle) - que possui a versão mais recente da Gradle listada: developer.android.com/tools/revisions/gradle-plugin.html
Booger

46

Solução (Atualizado em: 24 de maio de 2016): Altere build.gradle (projeto)

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:X.X.X-lastVersionGradle'
    classpath 'com.google.gms:google-services:X.X.X-lastVersionGServices' // If use google-services

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

XXX-lastVersionGradle : Por exemplo: 2.1.0

XXX-lastVersionGServices : por exemplo: 3.0.0 (suporte ao Firebase Analytics)

Nota: se você estiver usando o plug-in google-services, terá que ter a mesma versão (se houver)

Aviso!! -> 2.2.0-alpha lança major.minor versão 52.0 não suportada, se você não usa java JDK 8u91 e NetBeans 8.1


31

Como uma observação lateral, tenho recebido o mesmo erro em situações completamente não relacionadas - depois que a configuração do ano do relógio do sistema foi alterada (ou seja, 2015 -> 2016); alterar o relógio de volta para o correto resolveu o problema.

Nota 1: Estou publicando isso principalmente porque recebi exatamente a mesma mensagem de erro, mas a solução operacional provou ser diferente do que apenas atualizar a versão do plug-in (conforme publicado por Jared Burrows).

Nota 2: usando

classpath 'com.android.tools.build:gradle:+'

pode tornar a versão do plugin padrão para a mais nova. Lembre-se de que sua compilação pode quebrar as alterações da API (e, por esse motivo, desencorajada pelos documentos da API do Android); portanto, use isso por sua conta e risco apenas se estiver constantemente atualizando a versão.


4
O Intellij / Android Studio alertará você para não fazer isso, pois você deve saber qual versão está usando.
Jared Burrows

1
@JaredBurrows Eu sei qual versão estou usando - a mais nova. Não vejo nenhum motivo específico para vincular-se a uma versão específica, e atualizar a versão manualmente cada vez que uma nova versão é realizada dificilmente é uma opção mais sensata do que usar a +versão IMO. Os avisos são emitidos para ajudar na programação; se estivessem se referindo a regras rígidas e insuportáveis, não teriam sido avisos, mas erros. Ainda assim, você fez uma observação completamente válida, eu incluí essas informações no meu post.

1
o uso do operador '+' produz construções imprevisíveis e sempre deve ser evitado. Esta é uma resposta perigosa.
Agrosner 5/10

@agrosner veja meu comentário acima para justificativa. É verdade que isso deve ser evitado nas versões finais e no código de produção sério, mas não há desvantagem real em usá-lo no desenvolvimento contínuo de pequenas aplicações. Reformulado para tornar isso mais aparente. Como observação lateral, essas informações foram fornecidas como uma possível solução para um problema real , não como uma prática recomendada - e não é a resposta aqui - a resposta é verificar o relógio.

Bem ... Estou tendo esse problema hoje, e agora é 2016 agora ... Alguma chance de isso estar relacionado? Além disso, existe uma maneira de corrigir isso sem alterar o relógio? Atualmente, estou molhando o pé com o Android e o ambiente de construção. Ainda é tudo novo para mim e estou meio que perdida com este erro :(
exhuma



9

Substitua o caminho da sua classe por algo ambíguo como este. É uma solução e funciona, mas pode não ser uma boa solução.

classpath 'com.android.tools.build:gradle:+'

A melhor maneira é substituir o + pela versão mais recente do gradle


Bem, somente se você realmente quiser usar as versões alfa ou beta também.
JacksOnF1re

Leia o aviso aqui: developer.android.com/studio/releases/gradle-plugin.html "Cuidado: você não deve usar dependências dinâmicas nos números de versão, como 'com.android.tools.build:gradle:2.+' O uso desse recurso pode causar atualizações inesperadas da versão e dificuldade em resolver diferenças de versão. "
weston

6

Confira a versão mais recente do Gradle Plugin aqui:

Baixar

Você deve alterar isso nas dependências das configurações do aplicativo

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:[PLACE VERSION CODE HERE]'

}

}



1

Estou usando a Ligação de dados do Android e tenho o mesmo problema hoje.

Para resolvê-lo, altere:

classpath "com.android.databinding:dataBinder:1.0-rc0"

Para:

classpath "com.android.databinding:dataBinder:1.0-rc1"

O 1.0-rc0 ainda pode ser encontrado no jcenter agora, não sei por que não pôde ser usado.


1

Eu tenho uma maneira de finalmente resolver isso 1. verifique seu calsspath no build.gradle superior, por exemplo, o meu é classpath 'com.android.tools.build:gradle:2.1.0-alpha3' e vá para https: // jcenter. bintray.com/com/android/tools/build/gradle/ encontre uma versão mais recente que a sua, aqui eu escolho o caminho da classe 2.1.0-beta3 para abaixo e inicie a compilação. classpath 'com.android.tools.build:gradle:2.1.0-beta3'


1

Se você quiser continuar usando as versões de desenvolvimento mais recentes, esse problema poderá ocorrer sempre que sua versão estiver desatualizada o suficiente.

Eu tenho mantido uma lista atualizada das versões de desenvolvimento mais atuais, bem como a versão estável na minha resposta a essa pergunta semelhante, para que eu possa corrigi-la sempre que receber um novo aviso:

Android Studio 2.0 - O plug-in é muito antigo, atualize para uma versão mais recente ou defina ANDROID_DAILY_OVERRIDE


0

definir a variável de ambiente ANDROID_DAILY_OVERRIDE para o mesmo valor Exemplo - b9471da4f76e0d1a88d41a072922b1e0c257745c

isso funciona para mim.


E onde esta variável localizada ??
MobileEvangelist

Onde devo definir ANDROID_DAILY_OVERRIDE?
MiguelAngel_LV

1
@MiguelAngel_LV, AndriodNewbie, google como exportar variáveis ​​de ambiente no seu sistema operacional. Esta é uma característica OS
Yaroslav Mytkalyk


0

Nos últimos meses, usei uma versão "preview" do Android Studio. Tentei voltar às versões "estáveis" para as atualizações de software, mas não foi suficiente e recebi o famoso erro de que você fala.

A desinstalação do meu Android Studio 2.2.preview e a instalação mais recente estável do Android Studio (2.1) o corrigiram para mim :)


0

Ir para a versão estável ou gradle no arquivo gradle no nível do aplicativo, no meu caso, foi
caminho de classe 'com.android.tools.build:gradle:2.2.0-alpha3'

Eu mudei com

classpath 'com.android.tools.build:gradle:2.1.2'


0

a saída é de NonFinalPluginExpiry.java

exemplo 2.4.0-alpha7

https://github.com/c3ph3us/android-gradle-plugin-source-codes/blob/master/gradle-2.4.0-alpha7-sources/com/android/build/gradle/internal/NonFinalPluginExpiry.java

se alguém quiser usar o plugin e não quiser fazer um diário google shi ..

precisa:

  1. recompilar plugin
  2. substitua "Plugin-Version" no manifesto
  3. faça um script de automação para gerar env var e configure-o diariamente

         MessageDigest crypt = MessageDigest.getInstance("SHA-1");
         crypt.reset();
         crypt.update(String.format(
                         "%1$s:%2$s:%3$s",
                            now.getYear(),
                            now.getMonthValue() -1,
                            now.getDayOfMonth())
                            .getBytes("utf8"));
        String overrideValue = new BigInteger(1, crypt.digest()).toString(16);

EXEMPLO DE APLICATIVO EM JAVA (fontes + JAR):

  1. PARA GERAR ADO - PARA TODOS OS SO COM JVM
  2. SET ENV para LINUX

https://github.com/c3ph3us/ado

https://github.com/c3ph3us/ado/releases

Exemplo de função bash para exportar env e iniciar o idea / ou studio:

// eval export & start idea :) 
function sti() {
    export `java -jar AndroidDailyOverride.jar p`
    idea.sh
}

0

Esta é a maneira do android dizer para atualizar o gradle para a versão mais recente. Você pode fazer duas coisas-

  1. Atualize para a versão mais recente do gradle. Você pode enfrentar novos erros após a atualização (por exemplo, se estiver atualizando para 4.1, terá que se adaptar à nova sintaxe - "compilar" não é mais válido, use "implementação").
  2. Atualize sua variável ANDROID_DAILY_OVERRIDE para o valor fornecido. Vá para Computador -> Propriedades -> Configurações avançadas do sistema -> Variáveis ​​de ambiente e crie uma nova variável ou atualize o valor do ANDROID_DAILY_OVERRIDE existente. Como o nome sugere, esse valor é válido apenas por um dia e no dia seguinte, você terá que substituir novamente a variável.

-1

Você deve atualizar a versão do gradle. por exemplo: com.android.build.gradle 1.3.0

Esse problema ocorre quando a versão do gradle é alterada.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.