ปลั๊กอินเก่าเกินไปโปรดอัปเดตเป็นเวอร์ชันล่าสุดหรือตั้งค่าตัวแปรสภาพแวดล้อม ANDROID_DAILY_OVERRIDE เป็น


176

วันนี้ฉันเพิ่งนำเข้าแอพตัวอย่างจาก Android SDK เป็นโมดูลในโครงการของฉัน (การวิเคราะห์) และทันใดนั้นฉันก็พบข้อผิดพลาดการไล่ระดับสีเมื่อฉันพยายามซิงค์: 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

ก่อนอื่นต้องขอขอบคุณสำหรับคำตอบทันทีฉันจะพยายามเปลี่ยนการตั้งค่าของโครงการและฉันจะโพสต์ผลลัพธ์ที่นี่ ขอบคุณอีกครั้ง! :-)
Mario Norato

1
มันได้ผล! ฉันเพิ่งลบส่วน "-rc1" จาก classpath ตอนนี้มันซิงก์ ขอบคุณอีกครั้ง! PS ฉันไม่ค่อยเก่งในการใช้ stackoverflow ฉันจะโหวตคำตอบของคุณหรือทำเครื่องหมายว่าถูกต้องได้อย่างไร
Mario Norato

1
คุณสามารถหารุ่น gradle ล่าสุดที่นี่developer.android.com/tools/revisions/gradle-plugin.html
Bharatesh

วิธีหยาบคายสำหรับ Android Studio หากสิ่งที่สร้างขึ้นโดยอัตโนมัติจาก GUI ก็ไม่จำเป็นต้องได้รับความช่วยเหลือจากโปรแกรมเมอร์
Chameleon

คำตอบ:


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

ตรวจสอบ Android SDK Manager สำหรับการแก้ไขล่าสุดเสมอ:

ปลั๊กอินเครื่องมือสร้าง Android: 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 ชั่วโมงเพื่อไม่ให้รบกวนคุณที่นี่ในกองมากเกินไป :-)) ตอนนี้ฉัน จะพยายามอัปเดตปลั๊กอินตามที่คุณแนะนำ :-) ขอบคุณอีกครั้ง.
Mario Norato

1
@MarioNorato ไม่มีปัญหาฉันจะโพสต์ลิงก์ไปยังที่ที่คุณสามารถค้นหาเวอร์ชันล่าสุดได้ตลอดเวลา นอกจากนี้ Android studio ควรเตือนคุณเกี่ยวกับเวอร์ชันที่ใหม่กว่าหากคุณอัปเดตตัวจัดการ Android SDK อยู่
Jared Burrows

มีปัญหาเดียวกัน ย้ายปลั๊กอินจาก 1.4. ถึง 1.3. + ทำเคล็ดลับ นอกจากนี้ฉันกำลังใช้ gradle 2.8 และมีสคริปต์ที่ดาวน์โหลดเวอร์ชันล่าสุดเสมอเห็นได้ชัดว่ามันมีราคา ...
codeScriber

18
ฉันต้องไปhttps://jcenter.bintray.com/com/android/tools/build/gradle/คิดออกว่า gradle รุ่นล่าสุดคืออะไร การอัปเดตไฟล์ gradle ด้านบนของฉันด้วยเวอร์ชันล่าสุดที่มีจาก URL นั้นช่วยแก้ปัญหาได้ ทางออกของคุณไม่ได้ให้ข้อมูลที่เพียงพอแก่ฉันในการค้นหาสิ่งนี้!
exhuma

1
มันจะคุ้มค่ากับการเชื่อมโยงไปยังตำแหน่งนี้ (IMHO มันจะดีกว่าเว็บไซต์ Gradle) - ซึ่งมีรุ่นรุ่นล่าสุดของ Gradle ที่ระบุไว้: developer.android.com/tools/revisions/gradle-plugin.html
Booger

46

โซลูชัน (อัปเดต: 24 พฤษภาคม 2559): เปลี่ยน 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-alpha ขว้างไม่รองรับ 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 จะเตือนคุณไม่ให้ทำเช่นนี้เพราะคุณควรรู้ว่าคุณใช้เวอร์ชั่นใดอยู่
Jared Burrows

1
@ JaredBurrows ฉันรู้ว่าฉันใช้เวอร์ชันใด - เวอร์ชันใหม่ล่าสุด ฉันไม่เห็นเหตุผลใดที่จะผูกมัดตัวคุณกับรีลีสที่เฉพาะเจาะจงและการอัพเดตเวอร์ชันด้วยตัวเองทุกครั้งที่รีลีสใหม่เสร็จแล้วแทบจะเป็นตัวเลือกที่สมเหตุสมผลกว่าการใช้+IMO เวอร์ชัน คำเตือนจะถูกปล่อยออกมาเพื่อช่วยในการเขียนโปรแกรมหากพวกเขาอ้างถึงกฎที่ยากและไม่สามารถแก้ไขได้พวกเขาจะไม่ได้รับการเตือน แต่มีข้อผิดพลาดในสถานที่แรก แต่ถึงกระนั้นคุณได้ทำจุดที่ถูกต้องสมบูรณ์ฉันได้รวมข้อมูลนั้นในโพสต์

1
การใช้ตัวดำเนินการ '+' จะสร้างบิวด์ที่คาดเดาไม่ได้และควรหลีกเลี่ยงเสมอ นี่เป็นคำตอบที่อันตราย
agrosner

@agrosner ดูความคิดเห็นของฉันด้านบนเพื่อเหตุผล จริงแล้วควรหลีกเลี่ยงในการเชื่อมโยงครั้งสุดท้ายและในรหัสการผลิตที่จริงจัง แต่ไม่มีข้อเสียจริง ๆ ที่จะใช้ในการพัฒนาแอปพลิเคชันขนาดเล็กอย่างต่อเนื่อง กลับใจใหม่เพื่อให้ชัดเจนยิ่งขึ้น ในฐานะที่เป็นหมายเหตุด้านข้อมูลที่ได้รับเป็นวิธีแก้ปัญหาที่เป็นไปได้จริงไม่ใช่วิธีปฏิบัติที่ดีที่สุด - และไม่ใช่คำตอบที่นี่ - คำตอบคือตรวจสอบนาฬิกา

ทีนี้ ... ฉันมีปัญหานี้วันนี้และจริง ๆ แล้วคือ 2016 ตอนนี้ ... โอกาสใด ๆ ที่อาจเกี่ยวข้องกัน? นอกจากนี้ยังมีวิธีแก้ไขปัญหานี้โดยไม่เปลี่ยนนาฬิกาหรือไม่ ขณะนี้ฉันเปียกปอนด้วย Android และสภาพแวดล้อมการสร้าง มันยังใหม่สำหรับฉันและฉันก็หลงผิดกับข้อผิดพลาดนี้: (
exhuma

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.+' การใช้คุณสมบัตินี้อาจทำให้เกิดการอัปเดตเวอร์ชันที่ไม่คาดคิดและแก้ไขความแตกต่างของเวอร์ชันได้ "
weston

6

ตรวจสอบปลั๊กอิน Gradle รุ่นล่าสุดได้ที่นี่:

ดาวน์โหลด

คุณควรเปลี่ยนสิ่งนี้ในการพึ่งพาการตั้งค่าแอพ

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

}

}


2

ปัญหานี้เกิดขึ้นเนื่องจากการเปลี่ยนแปลงเวอร์ชัน Gradle เนื่องจากแอปพลิเคชันของคุณใช้การไล่ระดับสีรุ่นเก่าคุณต้องอัปเดตเป็นเวอร์ชันใหม่

การเปลี่ยนแปลงนี้จะต้องทำในไฟล์ build.gradle ดูที่ลิงค์นี้http://www.feelzdroid.com/2015/11/android-plugin-too-old-update-recent-version.htmlลิงก์นี้นี้ เพื่อทราบวิธีอัปเดตการไล่ระดับและขั้นตอนอย่างละเอียด ที่นั่น

thans


1

ฉันใช้การผูกข้อมูล Androidและฉันมีปัญหาเดียวกันในวันนี้

เพื่อแก้ปัญหาให้เปลี่ยน:

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

ถึง:

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

ยังคงพบ 1.0-rc0 ในjcenterตอนนี้ฉันไม่รู้ว่าทำไมมันไม่สามารถใช้งานได้


1

ฉันมีวิธีที่จะแก้ปัญหานี้ในที่สุด 1. ตรวจสอบ calsspath ของคุณใน build.gradle ด้านบนเช่นฉันเป็น classpath 'com.android.tools.build:gradle:2.1.0-alpha3' จากนั้นไปที่ https: // jcenter bintray.com/com/android/tools/build/gradle/ ค้นหารุ่นที่ใหม่กว่าของคุณที่นี่ฉันเลือก classpath เปลี่ยน 2.1.0-beta3 ไปด้านล่างแล้วเปิดบิลด์ 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 วิธีส่งออกตัวแปรสภาพแวดล้อมในระบบปฏิบัติการของคุณ นี่คือคุณสมบัติระบบปฏิบัติการ
Yaroslav Mytkalyk

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' หรือ 'เบต้า'


0

ในช่วงหลายเดือนที่ผ่านมาฉันใช้ Android Studio รุ่น "ตัวอย่าง" ฉันพยายามเปลี่ยนกลับไปเป็นรุ่น "เสถียร" สำหรับการอัปเดตซอฟต์แวร์ แต่ก็ไม่เพียงพอและฉันได้รับข้อผิดพลาดอันโด่งดังที่คุณพูดถึง

ถอนการติดตั้ง Android Studio 2.2.preview และติดตั้ง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-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

ถ้ามีคนต้องการใช้ปลั๊กอินและไม่ต้องการทำ google รายวัน

ต้อง:

  1. recompile ปลั๊กอิน
  2. แทนที่ "Plugin-Version" ในไฟล์ Manifest
  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. FOR GENERATE ADO - สำหรับทุกระบบปฏิบัติการด้วย JVM
  2. SET ENV สำหรับ LINUX

https://github.com/c3ph3us/ado

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

ตัวอย่างฟังก์ชั่นทุบตีเพื่อส่งออก env และเริ่มต้นความคิด / หรือสตูดิโอ:

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

0

นี่เป็นวิธีที่ Android ใช้บอกให้คุณอัพเกรดเกรดเป็นเวอร์ชั่นล่าสุด คุณสามารถทำสองสิ่ง -

  1. อัปเกรดเป็น gradle เวอร์ชั่นใหม่กว่า คุณอาจพบข้อผิดพลาดใหม่หลังจากการอัพเกรด (เช่นหากคุณกำลังอัพเกรดเป็น 4.1 คุณจะต้องปรับตัวเข้ากับไวยากรณ์ใหม่ - "คอมไพล์" ไม่ถูกต้องใช้ "การนำไปใช้")
  2. อัปเดตตัวแปร ANDROID_DAILY_OVERRIDE ของคุณเป็นค่าที่กำหนด ไปที่คอมพิวเตอร์ -> คุณสมบัติ -> การตั้งค่าระบบขั้นสูง -> ตัวแปรสภาพแวดล้อมและสร้างตัวแปรใหม่หรือค่าการอัพเดทของ ANDROID_DAILY_OVERRIDE ที่มีอยู่ ตามชื่อที่แนะนำค่านี้ใช้ได้เพียงหนึ่งวันและวันถัดไปคุณจะต้องแทนที่ตัวแปรอีกครั้ง

-1

คุณควรอัพเกรดรุ่น gradle ตัวอย่างเช่น: com.android.build.gradle 1.3.0

ปัญหานี้เกิดขึ้นเมื่อมีการเปลี่ยนแปลงเวอร์ชั่นของ gradle

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.