web-dev-qa-db-fra.com

'dépendances' ne peut pas être appliqué à '(groovy.lang.Closure)'

Je suis incapable de corriger cette erreur:

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

Ceci est mon fichier de classement:

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
    }
 }
117
Ashwani Kottapalli

Selon ce que génère Android Studio, vous devez disposer d'un fichier de projet de niveau supérieur build.gradle et d'un autre pour votre application build.gradle.

Haut niveau:

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

Niveau d'application:

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.+'
}

Mais même sans tout cela, votre problème est que vous avez une dependencies dans votre config de plugin Android.

Android {
    dependencies {
    }
}

supprimez ce bloc dependencies vide.

EDIT: J'ai également commencé à avoir cette erreur avec le dernier Android Studio, tout ce que j'avais à faire, c'était d'ajouter une version plus récente du plugin Gradle et 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()
    }
}
22
EpicPandaForce

Vous pouvez aller dans Préférences et sélectionner "utiliser le wrapper de dégradé par défaut" puis reconstruire le projet. Ça a bien marché pour moi:  enter image description here

246
codingpuss

Aller à 

Les fenêtres

Fichier -> Paramètres -> Construire, Exécution, Déploiement -> Outils de construction -> Gradle

Mac

Préférence -> Construction, exécution, déploiement -> Outils de construction -> Gradle 

et sélectionnez Utiliser l’encapsuleur par défaut

37
Mark Pazon

Mon problème est que tout le fichier build.setting était occupé par des messages d'avertissement cannot be applied to '(groovy.lang.Closure)' au lieu de se produire sur une variable particulière.

J'ai essayé toutes les solutions fournies par d'autres mais aucune d'entre elles ne fonctionne pour moi ..__ J'ai fini par faire ces étapes puis ça fonctionne comme un charme. Si vous rencontrez le même problème, essayez-le.

  1. Ouvrir et éditer le fichier: yourproject/gradle/wrapper/gradle-wrapper.properties. Modifiez le contenu pour mettre à jour la version de distribution de gradle comme indiqué dans l'image ci-dessous, puis enregistrez.
  2. Supprimer ce dossier: yourproject/.gradle.
  3. Cliquez sur Sync project with gradle files, alors vous êtes prêt à partir.

 enter image description here

18
Arst

Si vous utilisez déjà "l'encapsuleur par défaut" et que cela n'aide pas:

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

Si cela n’aide pas non plus, essayez en 2 étapes:

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

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

Après avoir redémarré l'avertissement devrait disparaître.

(Pour moi cela a fonctionné et pour Android Studio et pour IntelliJ Idea)

16
Andrey

Je suis allé dans les préférences pour essayer l'une des autres réponses lorsque j'ai remarqué un avertissement indiquant que mon répertoire personnel gradle était erroné. J'ai donc ouvert le navigateur de fichiers et choisi la version gradle la plus récente. Toutes les erreurs ont disparu. Image ci-dessous.

 enter image description here

4
craned

Je parie que le problème n’est absolument pas lié au code qui vous avertit, c’est très probablement votre fichier proguard. J'ai eu ce qui suit dans mon code et j'ai reçu le même avertissement:

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

En commentant runProguard false, tous mes problèmes disparaissent, allez comprendre :)

1
Daniel Wilson

J'ai le même problème dans Android studio 2.2, ça marche pour moi:

original:

Android {
...
}

dependencies {
...
}

move dependencies in Android:

Android {
...
   dependencies {
   ...
   }
}
1
Yakami

Pour résoudre le problème, fermez simplement le projet, puis sélectionnez «Ouvrir un projet Android Studio existant» dans le menu Démarrer et sélectionnez le dossier contenant votre projet Android. Attention, sélectionnez le dossier et non le fichier de projet .iml.

0
Webdma

Coupez puis collez les "buildTypes" au même endroit dans la section "Android" et le projet Re-Sync (actualiser).

0
Andrey
  1. Fermer le projet (Fichier/Fermer le projet), 
  2. Sélectionnez «Ouvrir un projet Android Studio existant» dans le menu de démarrage et sélectionnez le dossier contenant votre projet Android.

Ce travail pour moi.

0
zerob13

Les fichiers Gradle peuvent être explicites à plusieurs endroits pour éviter de telles erreurs. Par exemple. Changement

configurations {

à 

project.configurations {

ou

task {
    description 'foo'

à

task {
    setDescription 'foo'
0
tkruse

J'ai résolu le problème dans Android Studio en invalidant le cache et en redémarrant.

File-> Invalidate Caches / Restart..

 enter image description here

0
ahmadalibaloch

J'ai rencontré un problème similaire à celui-ci dans IntelliJ pour un projet Kotlin. Il semble que le problème soit que dans mon projet, même s'il était configuré pour utiliser JDK 8, les versions de langage et d'API ont été configurées à 1.3. Voir Préférences du projet> Facettes. Dans mon cas, j'ai coché "utiliser les paramètres du projet", mais leur réglage manuel par facette peut également fonctionner.

0
Tim Keating