Il plug-in è troppo vecchio, aggiorna a una versione più recente o imposta la variabile di ambiente ANDROID_DAILY_OVERRIDE su


176

oggi ho appena importato un'app di esempio da Android SDK come modulo nel mio progetto (analisi) e improvvisamente ho avuto questo errore gradle quando provo a sincronizzarlo: Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE envrinment variable to...

Questo è il mio gradlefile dell'app :

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')
}

Hai idea di quale possa essere la causa (sto usando il plugin versione 1.1.0-rc1 e la gradleversione 2.2 e Android Studioversione 1.1.0)?

MODIFICARE:

Questo è il mio massimo 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
È necessario Gradle 2.2.1 per Android Studio 1.1.0. Il plug-in Gradle per Android 1.1 è ora disponibile, quindi non dovresti più aver bisogno di -rc1.
Commons War

Innanzitutto grazie per la tua risposta immediata, cercherò di modificare le impostazioni del progetto e pubblicherò i risultati qui. Grazie ancora! :-)
Mario Norato,

1
Ha funzionato! Ho appena eliminato la parte "-rc1" dal percorso di classe. Ora è sincronizzato. Grazie ancora! PS Non sono molto bravo a usare StackOverflow, come posso votare la tua risposta o contrassegnarla come corretta?
Mario Norato,

1
puoi sempre trovare l' ultima versione gradle qui developer.android.com/tools/revisions/gradle-plugin.html
Bharatesh,

Che maleducato per Android Studio. Se qualcosa viene generato automaticamente dalla GUI, non deve MAI aver bisogno dell'assistenza del programmatore.
Camaleonte,

Risposte:


132

Proprio come suggerito da CommonsWare, assicurati di avere Gradle 2.2.1+ (l'ultimo è 2.3).

Assicurati di aggiornare il tuo Android Studio ma qui ci sono i "plugin" che devono essere aggiornati:

Top build.gradle:

Modificare:

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

Per:

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

App build.gradle:

Modificare:

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

Per:

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

Controlla sempre Android SDK Manager per le ultime revisioni:

Plugin Android Build Tools: http://tools.android.com/tech-docs/new-build-system

Librerie di supporto Android: http://developer.android.com/tools/support-library/features.html

Per visualizzare le ultime versioni dei plug-in, visualizzare direttamente la pagina Bintray Jcenter: https://bintray.com/android/android-tools/com.android.tools.build.gradle/view .


Ok, dopo aver letto la risposta di Commonsware ho appena tolto la parte -rc1 del percorso di classe e dopo l'indicizzazione ora sembra funzionare bene (ahi ho perso quasi 2 ore per non disturbare nessuno di voi qui in pila di overflow :-)), ora proverò ad aggiornare il plugin come suggerisci. :-) Grazie ancora.
Mario Norato,

1
@MarioNorato Nessun problema, posterò i link dove puoi trovare l'ultima versione in ogni momento. Inoltre, Android Studio ti avviserà della versione più recente se mantieni aggiornato il gestore SDK Android.
Jared Burrows,

ha avuto lo stesso problema. spostare il plugin da 1.4. + a 1.3. + ha fatto il trucco. anche io sto usando il grado 2.8 e ho uno script che scarica sempre l'ultima versione, a quanto pare ha il suo prezzo ...
codeScriber

18
Ho dovuto andare a https://jcenter.bintray.com/com/android/tools/build/gradle/capire quale fosse l'ultima versione di Gradle. L'aggiornamento del mio file di livello superiore con l'ultima versione disponibile da tale URL ha risolto il problema. La tua soluzione non mi ha fornito informazioni sufficienti per trovare questo!
exhuma,

1
Vale la pena collegarsi a questa posizione (IMHO, è meglio del sito Web Gradle) - che ha elencato l'ultima versione di rilascio Gradle: developer.android.com/tools/revisions/gradle-plugin.html
Booger

46

Soluzione (aggiornata il 24 maggio 2016): modifica build.gradle (progetto)

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 : ad esempio: 2.1.0

XXX-lastVersionGServices : ad esempio: 3.0.0 (supporta Firebase Analytics)

Nota: se si utilizza il plug-in Google Services deve essere la stessa versione (se presente)

Avvertimento!! -> 2.2.0-alpha genera Major.minor versione 52.0 non supportata se non si utilizza java JDK 8u91 e NetBeans 8.1


31

Come nota a margine, ho riscontrato lo stesso errore in una situazione completamente non correlata, dopo che l'impostazione del mio anno di sistema è stata modificata (ovvero 2015 -> 2016); la modifica dell'orologio con quella corretta ha risolto il problema.

Nota 1: sto pubblicando questo principalmente perché ho avuto esattamente lo stesso messaggio di errore, ma la soluzione funzionante si è dimostrata diversa rispetto al semplice aggiornamento della versione del plugin (come pubblicato da Jared Burrows).

Nota 2: utilizzo

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

può rendere la versione del plugin predefinita alla più recente. Tieni presente che la tua build potrebbe interrompere le modifiche all'API (ed è, per questo motivo, scoraggiata dai documenti dell'API Android), quindi usala a tuo rischio e pericolo solo se aggiorni costantemente la versione comunque.


4
Intellij / Android Studio ti avviserà di non farlo, poiché dovresti sapere quale versione stai utilizzando.
Jared Burrows,

1
@JaredBurrows So quale versione sto usando, la più recente. Non vedo alcun motivo particolare per vincolarti a una versione particolare e l'aggiornamento manuale della versione ogni volta che viene eseguita una nuova versione non è certo un'opzione più sensata rispetto all'utilizzo della +versione IMO. Gli avvisi vengono emessi per aiutare con la programmazione, se si riferissero a regole rigide e incommensurabili non sarebbero stati avvertimenti ma errori in primo luogo. Tuttavia, hai fatto un punto completamente valido, ho incluso quelle informazioni nel mio post.

1
l'uso dell'operatore "+" produce build imprevedibili e dovrebbe essere sempre evitato. Questa è una risposta pericolosa.
agrosner,

@agrosner vedi il mio commento sopra per la logica. È vero, dovrebbe essere evitato nei rilasci finali e nel serio codice di produzione, ma non c'è un vero svantaggio nell'usarlo nello sviluppo continuo di piccole applicazioni. Rielaborato per renderlo più evidente. Come nota a margine, quell'informazione è stata data come una possibile soluzione al problema reale , non come una buona pratica - e non è la risposta qui - la risposta è controllare l'orologio.

Bene ... oggi sto riscontrando questo problema, ed è davvero il 2016 adesso ... Qualche possibilità potrebbe essere correlata? Inoltre, c'è un modo per risolvere questo problema senza cambiare l'orologio? Attualmente mi sto bagnando i piedi con Android e l'ambiente di costruzione. È ancora tutto nuovo per me e sono un po 'perso con questo errore :(
exhuma



9

Sostituisci il tuo percorso di classe con qualcosa di ambiguo come questo. È una soluzione e funziona ma potrebbe non essere una buona soluzione.

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

Il modo migliore è sostituire il + con l'ultima versione di Gradle


Bene, solo se vuoi davvero usare anche le versioni alfa o beta.
JacksOnF1re

Leggi le precauzioni qui: developer.android.com/studio/releases/gradle-plugin.html "Attenzione: non utilizzare dipendenze dinamiche nei numeri di versione, come" com.android.tools.build:gradle:2.+ " L'utilizzo di questa funzione può causare aggiornamenti di versione imprevisti e difficoltà a risolvere le differenze di versione. "
Weston,

6

Controlla qui l'ultima versione del plug-in Gradle:

Scarica

È necessario modificarlo in base alle impostazioni delle app

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

}

}



1

Sto utilizzando Android Data Binding e oggi ho lo stesso problema.

Per risolverlo, cambia:

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

Per:

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

1.0-rc0 può ancora essere trovato su jcenter ora, non so perché non possa essere usato.


1

Ho trovato un modo che alla fine risolve questo 1. controlla il tuo calsspath nella parte superiore build.gradle, ad esempio il mio è classpath 'com.android.tools.build:gradle:2.1.0-alpha3' quindi vai a https: // jcenter. bintray.com/com/android/tools/build/gradle/ trova una versione più recente della tua, qui scelgo 2.1.0-beta3 cambia il percorso di classe in basso, quindi lancio la build. classpath 'com.android.tools.build:gradle:2.1.0-beta3'


1

Se si desidera continuare a utilizzare le versioni di sviluppo più recenti, questo problema può ripresentarsi ogni volta che la versione è abbastanza obsoleta.

Ho tenuto un elenco aggiornato delle versioni di sviluppo più attuali e della versione stabile sulla mia risposta a questa domanda simile, in modo da poterlo correggere ogni volta che ricevo un nuovo avviso:

Android Studio 2.0 - Il plug-in è troppo vecchio, aggiorna a una versione più recente o imposta ANDROID_DAILY_OVERRIDE


0

impostare la variabile d'ambiente ANDROID_DAILY_OVERRIDE sullo stesso valore Esempio - b9471da4f76e0d1a88d41a072922b1e0c257745c

questo funziona per me.


E dove si trova questa variabile ??
MobileEvangelist,

Dove devo impostare ANDROID_DAILY_OVERRIDE?
MiguelAngel_LV,

1
@MiguelAngel_LV, AndriodNewbie, google come esportare la variabile d'ambiente nel tuo sistema operativo. Questa è una funzionalità del sistema operativo
Yaroslav Mytkalyk


0

Negli ultimi mesi ho usato una versione di "anteprima" di Android Studio. Ho provato a tornare alle versioni "stabili" per gli aggiornamenti del software, ma non era abbastanza e ho avuto questo famoso errore di cui parli.

La disinstallazione di Android Studio 2.2.preview e l'installazione dell'ultimo Android Studio stabile (2.1) lo ha risolto per me :)


0

Scegli la versione stabile o il gradle nel file gradle a livello di app nel mio caso era
classpath 'com.android.tools.build:gradle:2.2.0-alpha3'

L'ho cambiato con

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


0

l'output proviene da NonFinalPluginExpiry.java

esempio 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 qualcuno vuole usare il plugin e non vuole fare un google shi quotidiano ...

entrambi devono:

  1. ricompilare plugin
  2. sostituire "Versione plug-in" in manifest
  3. crea uno script di automazione per generare env var e impostarlo quotidianamente

         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);

APP DI ESEMPIO IN JAVA (fonti + JAR):

  1. PER GENERO ADO - per TUTTI I SO CON JVM
  2. SET ENV per LINUX

https://github.com/c3ph3us/ado

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

funzione bash di esempio per esportare env e avviare idea / o studio:

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

0

Questo è il modo di Android di dirti di aggiornare Gradle alla versione più recente. Puoi fare due cose:

  1. Esegui l'upgrade alla versione più recente di Gradle. Potresti riscontrare nuovi errori dopo l'aggiornamento (ad esempio, se stai eseguendo l'aggiornamento a 4.1, dovrai adattarti alla nuova sintassi - "compilare" non è più valido, usa "implementazione").
  2. Aggiorna la tua variabile ANDROID_DAILY_OVERRIDE al valore indicato. Vai a Computer -> Proprietà -> Impostazioni di sistema avanzate -> Variabili d'ambiente e crea una nuova variabile o aggiorna il valore di ANDROID_DAILY_OVERRIDE esistente. Come suggerisce il nome, questo valore è valido solo per un giorno e il giorno successivo dovrai nuovamente eseguire l'override della variabile.

-1

È necessario aggiornare la versione di Gradle. ad esempio: com.android.build.gradle 1.3.0

questo problema si verifica quando viene modificata la versione del gradle.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.