Плагін занадто старий, оновіть його до новішої версії або встановіть змінну середовища ANDROID_DAILY_OVERRIDE на


176

сьогодні я просто імпортував зразок програми з Android SDK як модуль у своєму проекті (аналітика) і раптом у мене з’явилася ця помилка gradle при спробі синхронізувати його: Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE envrinment variable to...

Це мій gradleфайл програми :

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

Чи маєте ви уявлення про те, що може бути причиною (я використовую плагін версії 1.1.0-rc1 та gradleверсії 2.2 та Android Studioверсії 1.1.0)?

Редагувати:

Це мій топ 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
Вам потрібен Gradle 2.2.1 для Android Studio 1.1.0. Тепер доступний Gradle для Android плагін 1.1, тому вам більше не потрібно -rc1.
CommonsWare

Перш за все дякую за Вашу негайну відповідь, я спробую змінити налаштування проекту та опублікую результати тут. Знову дякую! :-)
Маріо Норато

1
Це спрацювало! Я щойно видалив "-rc1" частину з classpath. Тепер він синхронізований. Знову дякую! PS Я не дуже добре використовую stackoverflow, як я підтверджую вашу відповідь або відзначаю її як правильну?
Маріо Норато

1
ви завжди можете знайти останню версію gradle тут developer.android.com/tools/reitions/gradle-plugin.html
Bharatesh

Як грубо для Android Studio. Якщо щось створюється автоматично з gui, воно НІКОЛИ не потребує допомоги програміста.
Хамелеон

Відповіді:


132

Як і пропонував CommonsWare, переконайтеся, що у вас є Gradle 2.2.1+ (остання - 2.3).

Обов’язково оновіть Android Studio, але ось "плагіни", які потрібно оновити:

Вгору build.gradle:

Змінити:

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

До:

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

Додаток build.gradle:

Змінити:

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

До:

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

Завжди перевіряйте диспетчер SDK для Android на наявність останніх версій:

Плагін Android Build Tools: http://tools.android.com/tech-docs/new-build-system

Бібліотеки підтримки Android: http://developer.android.com/tools/support-library/features.html

Щоб переглянути останні випуски плагінів, перегляньте сторінку Bintray Jcenter безпосередньо: https://bintray.com/android/android-tools/com.android.tools.build.gradle/view .


Гаразд, прочитавши відповідь Commonsware, я просто забрав -rc1 частину classpath і після індексації зараз, здається, працює нормально (ой, я втратив майже 2 години, щоб не турбувати когось із вас тут у переповненні стека :-)), тепер я Спробую оновити плагін, як ви пропонуєте. :-) Знову дякую.
Маріо Норато

1
@MarioNorato Немає проблем, я розміщую посилання на те, де весь час можна знайти останню версію. Також студія Android повинна попередити вас про новішу версію, якщо ви постійно оновлюватимете менеджер SDK для Android.
Джаред Берроуз

мали те саме питання. перемістивши плагін з 1,4. + до 1,3. + зробив трюк. Також я використовую gradle 2.8 і маю сценарій, який завжди завантажує останню версію, мабуть, це ціна ...
codeScriber

18
Мені довелося https://jcenter.bintray.com/com/android/tools/build/gradle/розібратися, що таке остання версія gradle. Оновлення мого найвищого файлу gradle з останньою доступною версією з цієї URL-адреси вирішило проблему. Ваше рішення не дало мені достатньо інформації, щоб знайти це!
ексгума

1
Варто було б посилання на це місце (IMHO, краще, ніж на веб-сайті Gradle) - у якому перерахована остання версія релізу Gradle: developer.android.com/tools/reitions/gradle-plugin.html
Booger

46

Рішення (оновлено: 24 травня 2016 р.): Змінити build.gradle (проект)

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 : Наприклад: 2.1.0

XXX-lastVersionGServices : Наприклад: 3.0.0 (підтримка Firebase Analytics)

Примітка: якщо ви використовуєте плагін google-services, має бути однакова версія (якщо є)

Увага!! -> 2.2.0-альфа кидає Непідтримуваний файл major.minor версії 52.0, якщо ви не використовуєте java JDK 8u91 та NetBeans 8.1


31

Як бічне зауваження, я отримував ту саму помилку у абсолютно незв'язаній ситуації - після зміни моєї настройки системного року (тобто 2015 -> 2016); повернення годинника до правильного вирішило проблему.

Примітка 1: Я публікую це, головним чином, тому, що у мене було саме таке повідомлення про помилку, але робоче рішення виявилося іншим, ніж просто оновлення версії плагіна (як розміщено Jared Burrows).

Примітка 2: використання

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

може зробити версію плагіна за замовчуванням до нової. Майте на увазі, що ваша збірка може порушити зміни в API (і саме з цієї причини відштовхується документами Android API), тому використовуйте це на свій страх і ризик, лише якщо ви все одно постійно оновлюєте версію.


4
Intellij / Android Studio попередить вас не робити цього, оскільки ви повинні знати, яку версію ви використовуєте.
Джаред Берроуз

1
@JaredBurrows Я знаю, яку версію я використовую - найновішу. Я не бачу жодної причини прив'язувати себе до певного випуску, і оновлення версії вручну щоразу, коли робиться новий випуск, навряд чи є більш розумним варіантом, ніж використання +версії IMO. Попередження надходять, щоб допомогти програмуванню, якби вони посилалися на жорсткі, неперевершені правила, вони б не були попередженнями, а помилками в першу чергу. Тим не менш, ти зробив цілком справедливий пункт, я включив цю інформацію у свій пост.

1
використання оператора "+" створює непередбачувані збірки і його завжди слід уникати. Це небезпечна відповідь.
agrosner

@agrosner див. мій коментар вище для обґрунтування. Щоправда, цього слід уникати у фінальних рефералах та у серйозному виробничому коді, але реального недоліку використання його у постійній розробці невеликих додатків немає. Перефразоване, щоб зробити це більш очевидним. Як бічне зауваження, ця інформація була надана як можливе рішення реальної проблеми , а не як найкраща практика - і це не відповідь тут - відповідь полягає в тому, щоб перевірити годинник.

Ну ... У мене сьогодні ця проблема, і це справді 2016 рік ... Будь-який шанс це може бути пов’язано? Також чи існує спосіб виправити це, не змінюючи годинника? Наразі я змочу ноги за допомогою Android та середовища побудови. Це все ще для мене нове, і я якось втратив цю помилку :(
ексгума

29

На всякий випадок, якщо хтось бореться з цим, у моєму випадку я використовую Gradle 1.4 beta 1, і мені НЕОБХІДНО це зберегти. Тож для того, щоб Android Studio працював, перейдіть до терміналу і запустіть це:

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

Перезапустіть Android Studio і проект буде створений заново.

Кудо до ОНОВЛЕННЯ 2 тут: https://emmanuelbernard.com/blog/2012/05/09/setting-global-variables-intellij/



9

Замініть свій класний шлях чимось неоднозначним, як це. Її рішення, і воно працює, але це може бути не гарним рішенням.

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

Найкращий спосіб - замінити + на останню версію gradle


Ну, тільки якщо ви теж хочете використовувати альфа-або бета-версії.
JacksOnF1re

Прочитайте тут застереження: developer.android.com/studio/releases/gradle-plugin.html "Увага: не слід використовувати динамічні залежності у номерах версій, наприклад," com.android.tools.build :gradle:2.+ " . Використання цієї функції може призвести до несподіваних оновлень версій та труднощів у вирішенні відмінностей версій. "
Вестон

6

Ознайомтеся з останньою версією плагіна Gradle тут:

Завантажити

Ви повинні змінити це залежно від налаштувань програми

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

}

}


2

Ця проблема виникає через зміни версії Gradle, оскільки у вашій програмі використовується стара версія Gradle, вам потрібно оновити її до нової версії.

Ці зміни потрібно внести у файл build.gradle, ознайомтесь із цим посиланням http://www.feelzdroid.com/2015/11/android-plugin-too-old-update-recent-version.html . щоб знати, як оновити градус, і детальні кроки надані. там.

Тани


1

Я використовую Android Data Binding, і у мене є та сама проблема.

Щоб вирішити це, змініть:

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

До:

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

1,0-rc0 все ще можна знайти на jcenter зараз, я не знаю, чому це не можна використовувати.


1

У мене з'явився спосіб, який остаточно вирішить цю проблему. 1. Перевірте свій кальсовий шлях у верхньому build.gradle, наприклад, мій класний шлях 'com.android.tools.build:gradle:2.1.0-alpha3', потім перейдіть до https: // jcenter. bintray.com/com/android/tools/build/gradle/ знайдіть випуск, який є більш новим, ніж ваш, тут я вибираю 2.1.0-beta3 змінити classpath на нижній, а потім запустити збірку. classpath 'com.android.tools.build:gradle:2.1.0-beta3'


1

Якщо ви хочете продовжувати використовувати новіші версії розробки, то ця проблема може виникати щоразу, коли ваша версія буде досить застарілою.

Я відповідав на це подібне запитання актуальним списком найсучасніших версій розробки, а також стабільною версією, так що я можу це виправити кожен раз, коли отримую нове попередження:

Android Studio 2.0 - плагін занадто старий, оновіть його до новішої версії або встановіть ANDROID_DAILY_OVERRIDE


0

встановити змінну середовища ANDROID_DAILY_OVERRIDE на те саме значення Приклад - b9471da4f76e0d1a88d41a072922b1e0c257745c

це працює для мене.


І де ця змінна розташована ??
MobileEvangelist

Де я повинен встановити ANDROID_DAILY_OVERRIDE?
MiguelAngel_LV

1
@MiguelAngel_LV, AndriodNewbie, google, як експортувати змінну середовища у вашу операційну систему. Це особливість ОС
Ярослав Миткалик

0

Рішення видалення частини '-rcX' працює. Я хотів би надати ще детальну інформацію про те, чому відбувається помилка. Проблема пов’язана з https://android.googlesource.com/platform/tools/base/+/master/build-system/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.java#230

Існує 40-денний "пенсійний вік" за замовчуванням для плагінів, які не мають версії або містять "rc", "alpha" або "beta".


0

У минулі місяці я використовував "попередню" версію Android Studio. Я намагався повернутися до "стабільних" версій для оновлення програмного забезпечення, але цього було недостатньо, і я отримав цю відому помилку, про яку ви говорили.

Видалення моєї Android Studio 2.2. Попереднього перегляду та встановлення останньої стабільної Android Studio (2.1) виправили це для мене :)


0

Перейдіть на стабільну версію або gradle у файлі Gradle на рівні програми, у моєму випадку це був
classpath 'com.android.tools.build:gradle:2.2.0-alpha3'

Я змінив це на

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


0

вихід з NonFinalPluginExpiry.java

приклад 2.4.0-альфа7

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

якщо хтось хоче користуватися плагіном і не хоче щодня робити Google Shi ..

або потрібно:

  1. перекомпілювати плагін
  2. замініть "Plugin-Version" у маніфесті
  3. зробити сценарій автоматизації для створення env var та встановлювати його щодня

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

ПРИКЛАД ДОДАТКУ В JAVA (джерела + JAR):

  1. ДЛЯ GENERATE ADO - для ВСІХ ОС'S З JVM
  2. SET ENV для LINUX

https://github.com/c3ph3us/ado

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

Приклад функції bash для експорту ENV та запуску ідеї / або студії:

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

0

Це спосіб Android повідомити вам про те, щоб оновити gradle до останньої версії. Ви можете зробити дві речі-

  1. Оновіть до нової версії gradle. Ви можете зіткнутися з новими помилками після оновлення (наприклад, якщо ви оновлюєтесь до 4.1, вам доведеться адаптуватися до нового синтаксису - "компілювати" вже не дійсно, використовуйте "реалізація").
  2. Оновіть змінну ANDROID_DAILY_OVERRIDE до заданого значення. Перейдіть у розділ Комп'ютер -> Властивості -> Додаткові параметри системи -> Змінні середовища та створіть нову змінну або оновіть значення існуючого ANDROID_DAILY_OVERRIDE. Як випливає з назви, це значення дійсне лише протягом одного дня, і наступного дня вам знову доведеться перекрити змінну.

-1

Вам слід оновити версію gradle. наприклад: com.android.build.gradle 1.3.0

ця проблема виникає при зміні версії gradle.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.