El complemento es demasiado antiguo, actualice a una versión más reciente o configure la variable de entorno ANDROID_DAILY_OVERRIDE en

176

hoy acabo de importar una aplicación de muestra del SDK de Android como un módulo en mi proyecto (análisis) y de repente recibí este error grave cuando intento sincronizarlo: Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE envrinment variable to...

Este es mi gradlearchivo de aplicación :

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

¿Tiene alguna idea de cuál puede ser la causa (estoy usando la versión del complemento 1.1.0-rc1 y la gradleversión 2.2 y la Android Studioversión 1.1.0)?

EDITAR:

Este es mi 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()
    }
}
Mario Norato
fuente
44
Necesita Gradle 2.2.1 para Android Studio 1.1.0. El complemento 1.1 de Gradle para Android ya está disponible, por lo que ya no debería necesitarlo -rc1.
CommonsWare
En primer lugar, gracias por su respuesta inmediata. Trataré de cambiar la configuración del proyecto y publicaré los resultados aquí. ¡Gracias de nuevo! :-)
Mario Norato
1
¡Funcionó! Acabo de eliminar la parte "-rc1" del classpath. Ahora se sincronizó. ¡Gracias de nuevo! PD: No soy muy bueno en el uso de stackoverflow, ¿cómo puedo votar tu respuesta o marcarla como correcta?
Mario Norato
1
siempre puede encontrar la última versión de gradle aquí developer.android.com/tools/revisions/gradle-plugin.html
Bharatesh
Qué grosero para Android Studio. Si algo se genera automáticamente desde la interfaz gráfica de usuario, NUNCA debe necesitar la ayuda del programador.
Camaleón

Respuestas:

132

Al igual que sugirió CommonsWare, asegúrese de tener Gradle 2.2.1+ (la última es 2.3).

Asegúrese de actualizar su Android Studio, pero estos son los "complementos" que deben actualizarse:

Arriba build.gradle:

Cambio:

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

A:

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

Aplicación build.gradle:

Cambio:

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

A:

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

Consulte siempre el Administrador de Android SDK para obtener las últimas revisiones:

Complemento de herramientas de compilación de Android: http://tools.android.com/tech-docs/new-build-system

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

Para ver los últimos lanzamientos de complementos, vea la página de Bintray Jcenter directamente: https://bintray.com/android/android-tools/com.android.tools.build.gradle/view .

Jared Burrows
fuente
Ok, después de leer la respuesta de Commonsware, acabo de quitar la parte -rc1 del classpath y después de indexar ahora parece funcionar bien (ay, perdí casi 2 horas para no molestar a ninguno de ustedes aquí en el desbordamiento de la pila :-)), ahora Trataré de actualizar el complemento como usted sugiere. :-) Gracias de nuevo.
Mario Norato
1
@ MarioNorato No hay problema, publicaré los enlaces donde pueda encontrar la última versión todo el tiempo. Además, Android Studio debería advertirle sobre una versión más nueva si mantiene actualizado el administrador de Android SDK.
Jared Burrows
Tuve el mismo problema. mover el complemento de 1.4. + a 1.3. + hizo el truco. También estoy usando Gradle 2.8 y tener un script que siempre descarga la versión más reciente, al parecer, tiene su precio ...
codeScriber
18
Tuve que ir a https://jcenter.bintray.com/com/android/tools/build/gradle/averiguar cuál era la última versión de gradle. La actualización de mi archivo principal de Gradle con la última versión disponible de esa URL solucionó el problema. ¡Su solución no me dio suficiente información para encontrar esto!
exhuma el
1
Valdría la pena vincular a esta ubicación (en mi humilde opinión, es mejor que el sitio web de Gradle), que tiene la última versión de lanzamiento de Gradle en la lista: developer.android.com/tools/revisions/gradle-plugin.html
Booger
46

Solución (Actualizado: 24 de mayo de 2016): Cambiar build.gradle (proyecto)

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 ejemplo: 2.1.0

XXX-lastVersionGServices : por ejemplo: 3.0.0 (compatible con Firebase Analytics)

Nota: si está utilizando el complemento de google-services debe ser la misma versión (si existe)

¡¡Advertencia!! -> 2.2.0-alpha lanza la versión 52.0 major.minor no admitida si no utiliza java JDK 8u91 y NetBeans 8.1

SergioLucas
fuente
31

Como nota al margen, he estado recibiendo el mismo error en una situación completamente no relacionada, después de que se haya cambiado la configuración del año del reloj de mi sistema (es decir, 2015 -> 2016); Cambiar el reloj de nuevo al correcto resolvió el problema.

Nota 1: estoy publicando esto principalmente porque tenía exactamente el mismo mensaje de error, pero la solución de trabajo demostró ser diferente a solo actualizar la versión del complemento (según lo publicado por Jared Burrows).

Nota 2: usando

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

puede hacer que la versión del complemento sea la más nueva. Tenga en cuenta que su compilación puede romperse con los cambios de API (y es, por esa misma razón, desaconsejada por los documentos de API de Android), así que use esto bajo su propio riesgo solo si está actualizando constantemente la versión de todos modos.


fuente
44
Intellij / Android Studio le advertirá que no haga esto, ya que debe saber qué versión está utilizando.
Jared Burrows
1
@JaredBurrows Sé qué versión estoy usando, la más nueva. No veo ninguna razón particular para vincularse a una versión en particular, y actualizar manualmente la versión cada vez que se realiza una nueva versión no es una opción más sensata que usar la +versión IMO. Se emiten advertencias para ayudar con la programación, si se estuvieran refiriendo a reglas difíciles e imposibles de manejar, no habrían sido advertencias sino errores en primer lugar. Aún así, hiciste un punto completamente válido, he incluido esa información en mi publicación.
1
El uso del operador '+' produce compilaciones impredecibles y siempre debe evitarse. Esta es una respuesta peligrosa.
agrosner
@agrosner vea mi comentario anterior para justificarlo. Es cierto que debe evitarse en las versiones finales y en el código de producción serio, pero no hay ningún inconveniente real en usarlo en el desarrollo continuo de pequeñas aplicaciones. Reformulado para hacerlo más evidente. Como nota al margen, esa información se proporcionó como una posible solución a un problema real , no como una mejor práctica , y no es la respuesta aquí, la respuesta es verificar el reloj.
Bueno ... tengo este problema hoy, y realmente es 2016 ahora ... ¿Hay alguna posibilidad de que esto esté relacionado? Además, ¿hay alguna manera de arreglar esto sin cambiar el reloj? Actualmente me estoy mojando los pies con Android y el entorno de construcción. Todo sigue siendo nuevo para mí y estoy un poco perdido con este error :(
exhuma
29

En caso de que alguien esté luchando con esto, en mi caso estoy usando Gradle 1.4 beta 1 y NECESITO mantenerlo. Entonces, para que Android Studio funcione, vaya al terminal y ejecute esto:

launchctl setenv ANDROID_DAILY_OVERRIDE <your-value-on-error-message>

Reinicie Android Studio y el proyecto se compilará nuevamente.

Felicitaciones a la ACTUALIZACIÓN 2 aquí: https://emmanuelbernard.com/blog/2012/05/09/setting-global-variables-intellij/

Felipe Duarte
fuente
9

Reemplace su camino de clase con algo ambiguo como este. Es una solución y funciona, pero puede que no sea una buena solución.

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

La mejor manera es reemplazar el + con la última versión de gradle

Victor Mwenda
fuente
Bueno, solo si realmente quieres usar las versiones alfa o beta también.
JacksOnF1re
Lea la advertencia aquí: developer.android.com/studio/releases/gradle-plugin.html "Precaución: no debe usar dependencias dinámicas en los números de versión, como 'com.android.tools.build:gradle:2.+' El uso de esta función puede ocasionar actualizaciones inesperadas de la versión y dificultades para resolver las diferencias de versión ".
Weston
6

Verifique la última versión de Gradle Plugin aquí:

Descargar

Debería cambiar esto en función de la configuración de la aplicación

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

}

}

Dinesh Sunny
fuente
1

Estoy usando el enlace de datos de Android y tengo el mismo problema hoy.

Para resolverlo, cambie:

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

A:

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

1.0-rc0 todavía se puede encontrar en jcenter ahora, no sé por qué no se puede usar.

Peter Zhao
fuente
1

Obtuve una manera que finalmente resuelve esto 1. verifique su calsspath en el build.gradle superior, por ejemplo, el mío es classpath 'com.android.tools.build:gradle:2.1.0-alpha3' y luego vaya a https: // jcenter. bintray.com/com/android/tools/build/gradle/ encontrar una versión que es más nueva que la suya, aquí elijo 2.1.0-beta3 cambiar classpath a continuación, y luego iniciar la compilación. classpath 'com.android.tools.build:gradle:2.1.0-beta3'

hugo
fuente
1

Si desea continuar utilizando las versiones de desarrollo más recientes, este problema puede volver a ocurrir cada vez que su versión esté lo suficientemente desactualizada.

He estado manteniendo una lista actualizada de las versiones de desarrollo más recientes, así como la versión estable en mi respuesta a esta pregunta similar, para poder solucionarla cada vez que recibo una nueva advertencia:

Android Studio 2.0: el complemento es demasiado antiguo, actualícelo a una versión más reciente o configure ANDROID_DAILY_OVERRIDE

Nick Cardoso
fuente
0

establecer la variable de entorno ANDROID_DAILY_OVERRIDE en el mismo valor Ejemplo - b9471da4f76e0d1a88d41a072922b1e0c257745c

esto funciona para mi

Virendra
fuente
¿Y dónde se encuentra esta variable?
MobileEvangelist
¿Dónde debo configurar ANDROID_DAILY_OVERRIDE?
MiguelAngel_LV
1
@MiguelAngel_LV, AndriodNewbie, google cómo exportar variables de entorno en su sistema operativo. Esta es una característica del sistema operativo
Yaroslav Mytkalyk
0

En los últimos meses, utilicé una versión "vista previa" de Android Studio. Traté de volver a las versiones "estables" para las actualizaciones de software, pero no fue suficiente y recibí este famoso error del que hablas.

Desinstalar mi Android Studio 2.2.preview e instalar el último Android Studio estable (2.1) lo arregló para mí :)

Guillaume Gendre
fuente
0

Ir para la versión estable o gradle en el archivo gradle de nivel de aplicación en mi caso fue
classpath 'com.android.tools.build:gradle:2.2.0-alpha3'

Lo cambié con

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

usuario3326676
fuente
0

la salida es de NonFinalPluginExpiry.java

ejemplo 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

si alguien quiere usar el complemento y no quiere hacer un google shi diario.

o bien necesita:

  1. recompilar el complemento
  2. reemplazar "Plugin-Version" en manifiesto
  3. hacer un script de automatización para generar env var y configurarlo 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);

EJEMPLO DE APLICACIÓN EN JAVA (fuentes + JAR):

  1. PARA GENERAR ADO: para TODOS los SO con JVM
  2. SET ENV para LINUX

https://github.com/c3ph3us/ado

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

Ejemplo de función bash para exportar env e iniciar idea / o estudio:

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

Esta es la forma en que Android le dice que actualice Gradle a la versión más reciente. Puedes hacer dos cosas-

  1. Actualice a la versión más nueva de gradle. Puede enfrentar nuevos errores después de la actualización (por ejemplo, si está actualizando a 4.1, tendrá que adaptarse a la nueva sintaxis: "compilar" ya no es válido, utilice "implementación").
  2. Actualice su variable ANDROID_DAILY_OVERRIDE al valor dado. Vaya a Computadora -> Propiedades -> Configuración avanzada del sistema -> Variables de entorno, y cree una nueva variable o valor de actualización de ANDROID_DAILY_OVERRIDE existente. Como su nombre indica, este valor solo es válido por un día y al día siguiente tendrá que anular nuevamente la variable.
kshubham07
fuente
-1

Deberías actualizar la versión de gradle. por ejemplo: com.android.build.gradle 1.3.0

Este problema ocurre cuando se cambia la versión de Gradle.

Ashish srivastava
fuente