'निर्भरता' 'पर लागू नहीं की जा सकती है (groovy.lang.Closure)'


121

मैं इस त्रुटि को ठीक करने में असमर्थ हूं:

dependencies cannot be applied to '(groovy.lang.Closure)

यह मेरी वर्गीकृत फ़ाइल है:

buildscript {
     repositories {
         maven { url 'http://download.crashlytics.com/maven' }
     }

     dependencies {
         classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
     }
 }
apply plugin: 'android'
apply plugin: 'crashlytics'

repositories {
   maven { url 'http://download.crashlytics.com/maven' }
}

dependencies {
    compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':FRNDzTER_core')
    compile project(':cropper')
    compile project(':stickyListHeaders')
    compile "com.nostra13.universalimageloader:universal-image-loader:${rootProject.universalImageLoaderVersion}"
    compile "com.google.android.gms:play-    services:${rootProject.googlePlayServicesVersion}"
    compile "de.keyboardsurfer.android.widget:crouton:${rootProject.croutonVersion}"
    compile "com.nineoldandroids:library:${rootProject.nineoldandroidsVersion}"
    compile 'com.github.chrisbanes.actionbarpulltorefresh:library:+'
    compile 'com.crashlytics.android:crashlytics:1.+'
}

android{
    compileSdkVersion rootProject.compileSdkVersion
    buildToolsVersion rootProject.buildToolsVersion
    defaultConfig {
        minSdkVersion rootProject.minSdkVersion
        targetSdkVersion rootProject.targetSdkVersion
        versionCode rootProject.versionCode
        versionName rootProject.versionName
    } 
    buildTypes {
        release {
            debuggable rootProject.prodDebug
            proguardFile 'proguard.cfg'
        }
    }

    dependencies {
    }

    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
    }
    lintOptions {
        abortOnError false
    }
 }

1
मुझे पूरा यकीन है कि ये बहुत संबंधित हैं और जैसा कि मेरे जवाब से पता चलता है, मुझे लगता है कि त्रुटि अंकन एक बग है इसलिए समाधानों की असमानता है। stackoverflow.com/questions/29133601/… यह कहना कि शीर्ष उत्तर यहाँ नहीं है, आपके "वर्तमान" ग्रेड बिल्डस्क्रिप्ट के बारे में कुछ बहुत ही सामान्य सामान्य बिंदु नहीं बनाता है
सेब एंड्रास

जवाबों:


22

एंड्रॉइड स्टूडियो क्या उत्पन्न करता है, इसके आधार पर, आपके पास एक शीर्ष-स्तरीय प्रोजेक्ट फ़ाइल build.gradle, और आपके ऐप के लिए एक और होना चाहिए build.gradle

सर्वोच्च स्तर:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        maven { url 'http://download.crashlytics.com/maven' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.0'
        classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url 'http://download.crashlytics.com/maven' }
    }
}

आवेदन स्तर:

apply plugin: 'com.android.application'
apply plugin: 'crashlytics'

android{
    compileSdkVersion rootProject.compileSdkVersion
    buildToolsVersion rootProject.buildToolsVersion
    defaultConfig {
        minSdkVersion rootProject.minSdkVersion
        targetSdkVersion rootProject.targetSdkVersion
        versionCode rootProject.versionCode
        versionName rootProject.versionName
    } 
    buildTypes {
        release {
            debuggable rootProject.prodDebug
            proguardFile 'proguard.cfg'
        }
    }

    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
    }
    lintOptions {
        abortOnError false
    }
 }     `

dependencies {
    compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar')
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':FRNDzTER_core')
    compile project(':cropper')
    compile project(':stickyListHeaders')
    compile "com.nostra13.universalimageloader:universal-image-          l                        loader:${rootProject.universalImageLoaderVersion}"
    compile "com.google.android.gms:play-    services:${rootProject.googlePlayServicesVersion}"
    compile "   "de.keyboardsurfer.android.widget:crouton:${rootProject.croutonVersion}"
    compile "com.nineoldandroids:library:${rootProject.nineoldandroidsVersion}"
    compile 'com.github.chrisbanes.actionbarpulltorefresh:library:+'
    compile 'com.crashlytics.android:crashlytics:1.+'
}

लेकिन उस सब के बिना भी, आपकी समस्या यह है कि आपके पास dependenciesअपने androidप्लगइन कॉन्फिगर हैं।

android {
    dependencies {
    }
}

उस खाली dependenciesब्लॉक को हटा दें ।

संपादित करें: मुझे यह त्रुटि नवीनतम एंड्रॉइड स्टूडियो के साथ भी मिलनी शुरू हो गई, मुझे बस इतना करना था कि ग्रैडल प्लगइन का एक नया संस्करण जोड़ा गया, और 22 compileSdkVersion 22।

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        mavenCentral()
    }
}

11
मैंने अभी भी वही समस्या की है :(
अश्वनी कोट्टापल्ली

ईमानदार होने के लिए, मुझे लगता है कि आपको अपने क्राउटन, यूनिवर्सल-इमेज-लोडर और googleplayServices निर्भरता में अतिरिक्त उद्धरण और रिक्त स्थान को ठीक करना चाहिए। आपको Google Play सेवाओं के केवल भाग का उपयोग करना चाहिए, वो भी developer.android.com/google/play-services/setup.html के
EpicPandaForce

काम नहीं कर रहा है ... क्या आप मुझे fb id या anyother दे सकते हैं ... तो हम कसरत कर सकते हैं? कृप्या?
अश्वनी कोट्टापल्ली

... उस मामले में, मुझे नहीं पता कि आपका बग क्या है। :( पिछली बार मेरे साथ ऐसा हुआ था, मेरे android और gradle plugin पुराने थे, और मैं एक config प्रकार का उपयोग कर रहा था जो अब अस्तित्व में नहीं है
EpicPandaForce

1
निर्भर करता है कि आप कमांड लाइन या आईडीई का उपयोग कर रहे हैं। और अगर आई.डी.ई., तो क्या आई.डी.ई.
एपिकपांडाफॉर्स

247

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


4
क्या किसी के पास स्पष्टीकरण है कि ऐसा क्यों होता है?
रास

1
ऐसा लगता है कि 1.4 से 1.5 तक अपडेट होने के बाद, इस सेटिंग को मेरी मशीन के बजाय स्थानीय वितरण का उपयोग करने के लिए "रीसेट" मिला। इस जवाब ने निश्चित रूप से इस मुद्दे को हल कर दिया।
प्रतीत हो रहा है

3
143.2532994 संस्करण के रूप में यह समस्या फिर से होने लगती है ... मेरे साथ भी वही ...? इतना कष्टप्रद ..
Arst'

चयनित उत्तर बहुत विस्तृत और ईमानदार होने के बावजूद, एक कारण है कि इस उत्तर में परिमाण का क्रम अधिक है
पावेल ज़ेडनेक

ओह, हाँ, एक कारण है - मैक उपयोगकर्ता। खिड़कियों पर, पृष्ठ अलग है। "दिखाने के लिए कुछ भी नहीं"। चिह्नित उत्तर कम से कम किसी भी तरह से उपयोगी है।
गंगनुस

37

के लिए जाओ

खिड़कियाँ

फ़ाइल -> सेटिंग्स -> निर्माण, निष्पादन, तैनाती -> उपकरण बनाएँ -> ग्रेड

मैक

वरीयता -> बिल्ड, निष्पादन, तैनाती -> बिल्ड टूल -> ग्रेड

और डिफ़ॉल्ट डिफ़ॉल्ट आवरण का उपयोग करें का चयन करें


1
खिड़कियाँ। चयन करने के लिए कुछ भी नहीं।
गंगनुस

2
सबसे पहले आपको पहले प्रोजेक्ट को खोलना होगा।
राप्टर

और लिनक्स पर यह विंडोज पर समान है: फ़ाइल -> सेटिंग्स -> निर्माण, निष्पादन, परिनियोजन -> उपकरण बनाएँ -> ग्रेड। आप अपना उत्तर संपादित कर सकते हैं और "विंडोज / लिनक्स" लिख सकते हैं।
लीनोह 16

18

मेरी समस्या यह है कि पूरी बिल्ड.सेटिंग फ़ाइल को cannot be applied to '(groovy.lang.Closure)'किसी विशेष चर पर होने के बजाय चेतावनी संदेशों के साथ कब्जा कर लिया गया था।

मैंने दूसरों द्वारा प्रदान किए गए सभी समाधानों की कोशिश की है, लेकिन उनमें से कोई भी मेरे लिए काम नहीं करता है। मैंने इन चरणों को करना समाप्त कर दिया, फिर यह एक आकर्षण की तरह काम करता है। यदि आप एक ही मुद्दे का सामना कर रहे हैं, तो इसे आज़माएं।

  1. फ़ाइल खोलें और संपादित करें yourproject/gradle/wrapper/gradle-wrapper.properties:। नीचे दिए गए चित्र में दिखाए गए अनुसार, वितरण वितरण संस्करण को अद्यतन करने के लिए सामग्री को संपादित करें।
  2. इस फ़ोल्डर को हटाएँ yourproject/.gradle:।
  3. क्लिक करें Sync project with gradle files, फिर आप जाने के लिए अच्छे हैं।

यहाँ छवि विवरण दर्ज करें


1
Yourproject / .gradle निर्देशिका को हटाने की कोई आवश्यकता नहीं है। यदि आप ऐसा करना चुनते हैं, तो अपने द्वारा किए गए किसी भी अनुकूलन को सहेजना सुनिश्चित करें, जैसे कि org.gradle.daemon = true (एक सामान्य अनुकूलन) के साथ एक gradle.properties फ़ाइल जोड़ना। हालाँकि, आप बस पुनर्निर्माण कर सकते हैं, और ग्रेडल रैपर पुराने संस्करणों के साथ, वितरण संस्करण में निर्दिष्ट नया संस्करण डाउनलोड करेगा। पुराने संस्करण निर्देशिकाओं के लिए यह ठीक है कि आप अपनी परियोजना की श्रेणी निर्देशिका में बने रहें।
मार्क मैक्लेलैंड

gradle-wrapper.propertiesमेरी समस्या को हल करने में ग्रेड संस्करण को अद्यतन करना । धन्यवाद!
BVB

18

यदि आप पहले से ही "डिफ़ॉल्ट ग्रेडर रैपर" का उपयोग कर रहे हैं और यह मदद नहीं करता है:

In Menu click: File -> Invalidate Caches / Restart...

अगर यह भी 2 चरणों में प्रयास करने में मदद नहीं करता है:

1) Delete ".gradle" folder (and "build" folder if you have it already)

2) In Menu click: File -> Invalidate Caches / Restart...

पुनरारंभ करने के बाद चेतावनी गायब हो जानी चाहिए।

(मेरे लिए यह काम किया और Android स्टूडियो के लिए और IntelliJ आइडिया के लिए)


मेरे लिए काम किया। केवल ध्यान देने योग्य बात है: यदि आप बंडल्ड के बजाय अपने स्वयं के ग्रेडेल का उपयोग कर रहे हैं, तो आपको .gradleअपने होम डायरेक्टरी में भी डिलीट करना होगा ।

1
सिर्फ 2 कर) निर्देश ने मेरे लिए काम किया। धन्यवाद!!
मैलोडोडिनर

2
काम किया ... 5 सेकंड के लिए। तब मुझे वह त्रुटि फिर से मिली।
यार

यह थोड़ा निराशाजनक है कि IntelliJ ने हाल ही में पार्सिंग परियोजनाओं को ठीक से कैसे प्राप्त किया है। यह पहले इसकी बानगी हुआ करता था ... अब ऐसा लगता है कि यह जरा सी बात पर लड़खड़ा जाता है।
smaudet

4

मैं उन अन्य उत्तरों में से एक को आज़माने के लिए वरीयताओं में चला गया जब मैंने एक चेतावनी पर गौर किया कि मेरे gradleघर की निर्देशिका गलत थी। इसलिए मैंने फ़ाइल ब्राउज़र खोला और नए gradleसंस्करण को चुना , और सभी त्रुटियां दूर हो गईं। नीचे दिखाया गया चित्र

यहाँ छवि विवरण दर्ज करें


1

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

buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

टिप्पणी करने से runProguard false, मेरी सारी समस्याएँ दूर हो जाती हैं, आंकड़ा जाता है :)


डेनियल विल्सन यह मदद करता है अगर आप को बदलने runProguardके लिए minifyEnabledबजाय? अधिक जानकारी यहां दी
सर्गई एन।

1

मुझे एंड्रॉइड स्टूडियो में एक ही समस्या है 2.2 , यह मेरे लिए काम करता है:

मूल:

android {
...
}

dependencies {
...
}

ले जाने के dependenciesमें android:

android {
...
   dependencies {
   ...
   }
}

1

मैंने कैश को अमान्य करके और पुनः आरंभ करके एंड्रॉइड स्टूडियो में समस्या को हल किया।

File-> Invalidate Caches / Restart..

यहाँ छवि विवरण दर्ज करें


1

मैं एक इसी तरह की समस्या में भाग गया IntelliJ में एक Kotlin परियोजना के लिए। ऐसा लगता है कि मुद्दा यह था कि मेरी परियोजना में, भले ही इसे JDK 8 का उपयोग करने के लिए निर्धारित किया गया था, भाषा और एपीआई संस्करण किसी तरह 1.3 पर सेट हो गए। प्रोजेक्ट वरीयताएँ> पहलू देखें। मेरे मामले में, मैंने "प्रोजेक्ट सेटिंग्स का उपयोग करें" पर टिक किया, लेकिन मैन्युअल रूप से उन्हें प्रति सेट करने से काम हो सकता है।


0
  1. परियोजना बंद करें (फ़ाइल / बंद परियोजना),
  2. प्रारंभ मेनू पर "एक मौजूदा एंड्रॉइड स्टूडियो प्रोजेक्ट खोलें" चुनें और उस फ़ोल्डर का चयन करें जिसमें आपका एंड्रॉइड प्रोजेक्ट है।

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


0

इस तरह की त्रुटियों से बचने के लिए ग्रेड फाइल को कई स्थानों पर स्पष्ट किया जा सकता है। जैसे बदलना

configurations {

सेवा

project.configurations {

या

task {
    description 'foo'

सेवा

task {
    setDescription 'foo'

0

समस्या को ठीक करने के लिए बस प्रोजेक्ट को बंद करें, फिर स्टार्ट मेनू पर "एक मौजूदा एंड्रॉइड स्टूडियो प्रोजेक्ट खोलें" चुनें और उस फ़ोल्डर का चयन करें जिसमें आपका एंड्रॉइड प्रोजेक्ट है। खबरदार, फ़ोल्डर चुनें .iml परियोजना फ़ाइल नहीं।


0

कट और फिर "बिल्डटाइप्स" को "एंड्रॉइड" अनुभाग और री-सिंक (रिफ्रेश) प्रोजेक्ट में एक ही स्थान पर पेस्ट करें


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