Плагін занадто старий, оновіть його до новішої версії або встановіть змінну середовища 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.