प्लगइन बहुत पुराना है, कृपया हाल के संस्करण में अपडेट करें, या ANDROID_DAILY_OVERRIDE प्रकृति चर सेट करें


176

आज मैंने सिर्फ अपनी परियोजना (एनालिटिक्स) में एक मॉड्यूल के रूप में एंड्रॉइड एसडीके से एक नमूना ऐप आयात किया है और जब मुझे इसे सिंक करने का प्रयास किया गया तो मुझे अचानक यह त्रुटि मिली: 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-आरसी 1 और 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
एंड्रॉइड स्टूडियो 1.1.0 के लिए आपको ग्रैडल 2.2.1 की आवश्यकता है। एंड्रॉइड प्लगइन 1.1 के लिए ग्रैडल अब उपलब्ध है, इसलिए आपको अब इसकी आवश्यकता नहीं होनी चाहिए -rc1
कॉमंसवेयर

सबसे पहले आपके तत्काल उत्तर के लिए धन्यवाद, मैं परियोजना की सेटिंग्स को बदलने की कोशिश करूंगा और मैं यहां परिणाम पोस्ट करूंगा। एक बार फिर धन्यवाद! :-)
मारियो नॉराटो

1
इसने काम कर दिया! मैंने अभी क्लासपाथ से "-rc1" भाग को हटा दिया। अब यह सिंक गया। एक बार फिर धन्यवाद! PS, मैं स्टैकओवरफ़्लो का उपयोग करने में बहुत अच्छा नहीं हूं, मैं आपके उत्तर को कैसे सही करूं या इसे सही मानूं?
मारियो नॉराटो

1
आप हमेशा यहां डेवलपर का नवीनतम संस्करण देख सकते हैं । डेवलपर
.android.com

एंड्रॉइड स्टूडियो के लिए असभ्य कैसे। अगर कोई कुछ स्वचालित है, तो उसे प्रोग्रामर की सहायता की आवश्यकता है।
गिरगिट

जवाबों:


132

जैसे कॉमन्सवेयर ने सुझाव दिया है, सुनिश्चित करें कि आपके पास ग्रैडल 2.2.1+ है (नवीनतम 2.3 है)।

सुनिश्चित करें कि आप अपने एंड्रॉइड स्टूडियो को अपग्रेड करते हैं लेकिन यहां "प्लगइन्स" हैं जिन्हें अपडेट करने की आवश्यकता है:

शीर्ष 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

ग्रेड: https://gradle.org/downloads

हमेशा नवीनतम संशोधनों के लिए Android SDK प्रबंधक की जाँच करें:

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


ठीक है, कॉमन्सवेयर का उत्तर पढ़ने के बाद मैंने बस क्लास-क्लास का-आर्केड 1 हिस्सा छीन लिया और अब अनुक्रमण करने के बाद यह ठीक काम करने लगता है (ouch मैं लगभग 2 घंटे खो दिया, स्टैक ओवरफ्लो में यहाँ आप में से किसी को परेशान नहीं करने के लिए :-)), अब मैं सुझाव देते ही आप प्लगइन को अपडेट करने का प्रयास करेंगे। :-) एक बार फिर धन्यवाद।
मारियो नॉराटो

1
@MarioNorato कोई बात नहीं, मैं उन लिंक्स को पोस्ट करूँगा जहाँ आप हर समय नवीनतम संस्करण पा सकते हैं। इसके अलावा, यदि आप Android SDK प्रबंधक को अपडेट रखते हैं, तो Android स्टूडियो आपको नए संस्करण की चेतावनी दे सकता है।
जारेड बुरो

एक ही मुद्दा था। प्लगइन को 1.4 से स्थानांतरित करना। + से 1.3 तक। चाल किया। मैं भी 2.8 ग्रेड का उपयोग कर रहा हूं और एक स्क्रिप्ट है जो हमेशा नवीनतम संस्करण डाउनलोड करता है, जाहिर है कि इसकी कीमत है ...
कोडस्क्राइबर

18
मुझे https://jcenter.bintray.com/com/android/tools/build/gradle/यह पता लगाने के लिए जाना था कि ग्रेडेल का नवीनतम संस्करण क्या था। उस URL से नवीनतम उपलब्ध संस्करण के साथ मेरी शीर्ष ग्रेड फ़ाइल को अद्यतन करने से समस्या ठीक हो गई। आपके समाधान ने मुझे इसे खोजने के लिए पर्याप्त जानकारी नहीं दी!
exhuma

1
यह इस स्थान से जुड़ने लायक होगा (IMHO, यह बेहतर है फिर ग्रैडल वेबसाइट) - जिसका नवीनतम ग्रेडल रिलीज़ संस्करण सूचीबद्ध है: developer.android.com/tools/revisions/gradle-plugin.html
बूगीर

46

समाधान (अपडेट किया गया: 24-मई -2016): बिल्ड बिल्ड.ग्रेडल (प्रोजेक्ट) बदलें

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- सेवाओं के प्लगइन का उपयोग कर रहे हैं तो एक ही संस्करण होना चाहिए (यदि वहाँ है)

चेतावनी !! - अगर आप जावा JDK 8u91 और NetBeans 8.1 का उपयोग नहीं करते हैं तो 2.2.0-अल्फा थ्रेड असमर्थित मेजर है। 52.0 संस्करण


31

एक साइड नोट के रूप में, मुझे पूरी तरह से असंबंधित स्थिति में एक ही त्रुटि मिल रही है - मेरे सिस्टम की घड़ी की साल की सेटिंग बदलने के बाद (यानी 2015 -> 2016); घड़ी को वापस सही में बदलने से समस्या हल हो गई।

नोट 1: मैं इसे मुख्य रूप से पोस्ट कर रहा हूं क्योंकि मेरे पास एक ही त्रुटि संदेश था, लेकिन कार्य समाधान केवल प्लगइन के संस्करण को अपडेट करने से अलग साबित हुआ (जैसा कि पोस्ट किया गया था Jared Burrows)।

नोट 2: उपयोग करना

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

सबसे नया करने के लिए प्लगइन संस्करण डिफ़ॉल्ट बना सकते हैं। इस बात को ध्यान में रखें कि आपका निर्माण एपीआई परिवर्तनों पर टूट सकता है (और, उसी कारण से, एंड्रॉइड एपीआई डॉक्स द्वारा हतोत्साहित किया गया है), इसलिए इसे अपने जोखिम पर ही उपयोग करें यदि आप संस्करण को लगातार अपडेट कर रहे हैं।


4
Intellij / Android Studio आपको यह नहीं करने की चेतावनी देगा, क्योंकि आपको पता होना चाहिए कि आप किस संस्करण का उपयोग कर रहे हैं।
जारेड बुर

1
@JaredBurrows मुझे पता है कि मैं किस संस्करण का उपयोग कर रहा हूं - सबसे नया। मैं अपने आप को किसी विशेष रिलीज़ से बाँधने का कोई विशेष कारण नहीं देखता, और मैन्युअल रूप से संस्करण को अपडेट करते समय हर बार एक नया रिलीज़ किया जाता है, +संस्करण IMO का उपयोग करने की तुलना में शायद ही अधिक समझदार विकल्प होता है । चेतावनियों को प्रोग्रामिंग में मदद करने के लिए उत्सर्जित किया जाता है, अगर वे कठिन, असहनीय नियमों का उल्लेख कर रहे थे, तो उन्हें चेतावनी नहीं दी गई थी, लेकिन पहले स्थान पर त्रुटियां थीं। फिर भी, आपने पूरी तरह से मान्य बिंदु बनाया है, मैंने उस जानकारी को अपनी पोस्ट में शामिल किया है।

1
'+' ऑपरेटर का उपयोग अप्रत्याशित बिल्ड बनाता है और इसे हमेशा टाला जाना चाहिए। यह एक खतरनाक जवाब है।
13

@agrosner राशन के लिए मेरी टिप्पणी ऊपर देखें । सच है, इसे अंतिम रीलिज़ और गंभीर उत्पादन कोड में टाला जाना चाहिए, लेकिन छोटे अनुप्रयोगों के निरंतर विकास में इसका उपयोग करने के लिए कोई वास्तविक नकारात्मक पहलू नहीं है। कि अधिक स्पष्ट बनाने के लिए rephrased। एक साइड नोट के रूप में, उस जानकारी को वास्तविक समस्या के संभावित समाधान के रूप में दिया गया था , न कि एक सर्वोत्तम अभ्यास के रूप में - और यह यहाँ उत्तर नहीं है - इसका उत्तर घड़ी की जाँच करना है।

अच्छा ... मुझे आज यह समस्या हो रही है, और यह वास्तव में अब 2016 है ... कोई भी मौका इससे संबंधित हो सकता है? इसके अलावा, क्या घड़ी को बदले बिना इसे ठीक करने का कोई तरीका है? मैं वर्तमान में एंड्रॉइड और बिल्ड वातावरण के साथ अपने पैरों को गीला कर रहा हूं। यह सब मेरे लिए अभी भी नया है और मैं इस त्रुटि के साथ खो गया हूं :(
पूर्वानुमा

29

बस अगर कोई इससे जूझ रहा है, तो मेरे मामले में मैं ग्रैडल 1.4 बीटा 1 का उपयोग कर रहा हूं और मुझे इसे बनाए रखने की आवश्यकता है। तो एंड्रॉइड स्टूडियो काम करने के लिए टर्मिनल पर जाएं और इसे चलाएं:

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

एंड्रॉइड स्टूडियो को पुनरारंभ करें और प्रोजेक्ट फिर से निर्माण करेगा।

Kudos to UPDATE 2 यहां: https://emmanuelbernard.com/blog/2012/05/09/setting-global-variables-intellij/



9

इस तरह से अस्पष्ट कुछ के साथ अपने वर्ग पथ को बदलें। इसका एक समाधान और यह काम करता है लेकिन यह एक अच्छा समाधान नहीं हो सकता है।

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

सबसे अच्छा तरीका है, ग्रेड के नवीनतम संस्करण के साथ + की जगह


ठीक है, केवल अगर आप वास्तव में अल्फा या बीटा संस्करणों का उपयोग करना चाहते हैं, तो भी।
जैकसोफ़ 1

यहां सावधानी पढ़ें: developer.android.com/studio/releases/gradle-plugin.html "सावधानी: आपको संस्करण संख्याओं में गतिशील निर्भरता का उपयोग नहीं करना चाहिए, जैसे 'com.android.tools.build:gradle:2++++ इस सुविधा का उपयोग करने से अनपेक्षित संस्करण अद्यतन और संस्करण अंतरों को हल करने में कठिनाई हो सकती है। "
वेस्टन

6

ग्रेडल प्लगिन के नवीनतम संस्करण को यहां देखें:

डाउनलोड

आपको इसे ऐप सेटिंग की निर्भरता में बदलना चाहिए

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

}

}


2

यह समस्या ग्रैडल संस्करण परिवर्तनों के कारण होती है, क्योंकि आपका एप्लिकेशन पुराने वर्जन के ग्रेडेल का उपयोग करता है, इसलिए आपको नए संस्करण में अपडेट करने की आवश्यकता है।

यह परिवर्तन बिल्ड.ग्रेड फ़ाइल में किए जाने की आवश्यकता है, इस लिंक http://www.feelzdroid.com/2015/11/android-plugin-too-old-update-recent-version.html पर देखें । यह जानने के लिए कि कैसे अद्यतन और विस्तृत चरणों को प्रदान किया जाता है। वहाँ।

thans


1

मैं एंड्रॉइड डेटा बाइंडिंग का उपयोग कर रहा हूं और मुझे आज भी यही समस्या है।

इसे हल करने के लिए, बदलें:

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

सेवा:

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

1.0- rc0 अभी भी jcenter पर पाया जा सकता है , मुझे नहीं पता कि इसका उपयोग क्यों नहीं किया जा सकता है।


1

मुझे एक रास्ता मिला, जो अंत में इसे हल करता है। अपने बिल्डस्प्रेड को शीर्ष बिल्ड.ग्रेड में जांचें। उदाहरण के लिए मेरा है क्लासपैथ 'com.android.tools.build:gradle:2.1.0-alpha3' तो https: ' jcenter पर जाएं। bintray.com/com/android/tools/build/gradle/ एक रिलीज़ खोजें, जो आपकी तुलना में नया है, यहां मैं नीचे 2.1.0-बीटा 3 परिवर्तन क्लासपथ का चयन करता हूं, फिर बिल्ड लॉन्च करें। classpath 'com.android.tools.build:gradle:2.1.0-beta3'


1

यदि आप नवीनतम विकास संस्करणों का उपयोग करना जारी रखना चाहते हैं तो यह समस्या हर बार फिर से पैदा हो सकती है जब तक आपका संस्करण काफी पुराना हो।

मैं इस तरह के प्रश्न के उत्तर पर सबसे वर्तमान विकास संस्करणों के साथ-साथ स्थिर संस्करण की सूची भी जारी रख रहा हूं, ताकि जब भी मुझे नई चेतावनी मिले, मैं इसे ठीक कर सकूं:

Android Studio 2.0 - प्लगिन बहुत पुराना है, कृपया हाल के संस्करण में अपडेट करें, या ANDROID_DAILY_OVERHIDE सेट करें


0

सेट पर्यावरण चर ANDROID_DAILY_OVERRIDE एक ही मूल्य के लिए उदाहरण - b9471da4f76e0d1a88d41a072922b1e0c257745c

यह मेरे लिए काम करता है।


और यह चर कहाँ स्थित है ??
MobileEvangelist

मुझे ANDROID_DAILY_OVERRIDE कहां सेट करना चाहिए?
मिग्वेलएंगेल_वी 7

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/BelPlugin.java#230 के साथ है।

प्लगइन्स के लिए एक डिफ़ॉल्ट 40 दिनों की 'सेवानिवृत्ति की आयु' है जिसमें एक संस्करण नहीं है या जिसमें 'आरसी', 'अल्फा', या 'बीटा' शामिल हैं।


0

पिछले महीनों में, मैंने एंड्रॉइड स्टूडियो के "पूर्वावलोकन" संस्करण का उपयोग किया। मैंने सॉफ़्टवेयर अद्यतनों के लिए "स्थिर" रिलीज़ को वापस स्विच करने की कोशिश की, लेकिन यह पर्याप्त नहीं था और मुझे यह प्रसिद्ध त्रुटि मिली जिससे आप बात करते हैं।

मेरे एंड्रॉइड स्टूडियो को अनइंस्टॉल करना 2.2.preview और नवीनतम स्थिर एंड्रॉइड स्टूडियो (2.1) को स्थापित करना मेरे लिए इसे तय किया :)


0

स्थिर स्तर के लिए जाएं या मेरे मामले में ऐप लेवल ग्रेडल फाइल में
ग्रेडेल करें ' यह 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 शि करना चाहते हैं ..

या तो जरूरत है:

  1. recompile plugin
  2. प्रकट में "प्लगइन-संस्करण" को बदलें
  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);

जावा में स्रोत एपीपी (स्रोत + जार):

  1. सामान्य एडीओ के लिए - जेवीएम के साथ सभी ओएस के लिए
  2. LINUX के लिए ENV सेट करें

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 का तरीका है। आप दो काम कर सकते हैं-

  1. ग्रेडेल के नए संस्करण में अपग्रेड करें। अपग्रेड के बाद आपको नई त्रुटियों का सामना करना पड़ सकता है (उदाहरण के लिए, यदि आप 4.1 में अपग्रेड कर रहे हैं, तो आपको नए सिंटैक्स के अनुकूल होना पड़ेगा - "संकलन" अब मान्य नहीं है, "कार्यान्वयन" का उपयोग करें)।
  2. दिए गए मान को अपना ANDROID_DAILY_OVERRIDE चर अपडेट करें। कंप्यूटर पर जाएँ -> गुण -> उन्नत सिस्टम सेटिंग्स -> पर्यावरण चर, और मौजूदा ANDROID_DAILY_OVERRIDE का एक नया चर या अद्यतन मान बनाएँ। जैसा कि नाम से पता चलता है, यह मान केवल एक दिन के लिए मान्य है और अगले दिन आपको फिर से चर को ओवरराइड करना होगा।

-1

आपको ग्रेडेल के संस्करण को अपग्रेड करना चाहिए। उदाहरण के लिए: com.android.build.gradle 1.3.0

यह समस्या तब होती है जब ग्रेडेल के संस्करण को बदल दिया जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.