web-dev-qa-db-de.com

"Abhängigkeiten" können nicht auf "(groovy.lang.Closure)" angewendet werden.

Ich kann diesen Fehler nicht beheben:

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

Das ist meine Gradle-Datei:

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

Basierend auf dem, was Android Studio generiert, benötigen Sie eine Projektdatei build.gradle auf oberster Ebene und eine weitere für Ihre App build.gradle.

Höchststufe:

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

Anwendungsebene:

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

Aber auch ohne all das ist Ihr Problem, dass Sie eine dependencies in Ihrer Android plugin config haben.

Android {
    dependencies {
    }
}

entfernen Sie den leeren dependencies-Block.

BEARBEITEN: Ich bekam auch diese Fehlermeldung mit dem neuesten Android Studio. Ich musste lediglich eine neuere Version des Gradle-Plugins und compileSdkVersion 22 hinzufügen.

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

Sie können in die Voreinstellungen gehen und "Standard-Wrapper verwenden" auswählen und das Projekt neu erstellen. Es hat gut für mich funktioniert:  enter image description here

246
codingpuss

Gehe zu 

Windows

Datei -> Einstellungen -> Build, Ausführung, Bereitstellung -> Build-Tools -> Gradle

Mac

Preference -> Build, Execution, Deployment -> Build Tools -> Gradle 

und wählen Sie Standard-Gradle-Wrapper verwenden

37
Mark Pazon

Mein Problem ist, dass die gesamte build.setting-Datei mit cannot be applied to '(groovy.lang.Closure)'-Warnmeldungen belegt war, anstatt mit einer bestimmten Variablen zu geschehen.

Ich habe alle Lösungen ausprobiert, die von anderen angeboten werden, aber keine davon funktioniert für mich ... Ich endete mit diesen Schritten und es funktioniert wie ein Zauber. Wenn Sie das gleiche Problem haben, probieren Sie es aus.

  1. Datei öffnen und bearbeiten: yourproject/gradle/wrapper/gradle-wrapper.properties. Bearbeiten Sie den Inhalt, um die Gradle-Distributionsversion wie in der Abbildung unten gezeigt zu aktualisieren, und speichern Sie dann.
  2. Löschen Sie diesen Ordner: yourproject/.gradle.
  3. Klicken Sie auf Sync project with gradle files, dann können Sie loslegen.

 enter image description here

18
Arst

Wenn Sie bereits den "standard gradle wrapper" verwenden, hilft das nicht:

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

Wenn es auch nicht hilft, versuchen Sie es in 2 Schritten:

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

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

Nach dem Neustart sollte die Warnung verschwinden.

(Für mich hat es funktioniert und für Android Studio und für IntelliJ Idea)

16
Andrey

Ich ging in die Einstellungen und probierte eine der anderen Antworten aus, als ich eine Warnung bemerkte, dass mein gradle-Heimatverzeichnis falsch war. Also öffnete ich den Dateibrowser und wählte die neuere gradle-Version, und alle Fehler gingen weg. Bild unten gezeigt.

 enter image description here

4
craned

Ich wette, das Problem hat nichts mit dem Code zu tun, der Warnungen ausgibt, höchstwahrscheinlich ist es Ihre Datei. Ich hatte folgendes in meinem Code und bekam dieselbe Warnung:

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

Wenn ich runProguard false auskommentiere, verschwinden alle meine Probleme, mache Figur :)

1
Daniel Wilson

Ich habe das gleiche Problem in Android Studio 2.2, es funktioniert für mich:

original:

Android {
...
}

dependencies {
...
}

dependencies in Android verschieben:

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

Um das Problem zu beheben, schließen Sie einfach das Projekt, wählen Sie im Startmenü die Option "Ein vorhandenes Android Studio-Projekt öffnen" und wählen Sie den Ordner aus, der Ihr Android-Projekt enthält. Achtung, wählen Sie den Ordner aus, nicht die .iml-Projektdatei.

0
Webdma

Schneiden Sie die "buildTypes" an derselben Stelle im Abschnitt "Android" aus und fügen Sie sie ein, und fügen Sie sie erneut ein, um das Projekt erneut zu synchronisieren

0
Andrey
  1. Schließen Sie das Projekt (Datei/Projekt schließen). 
  2. Wählen Sie im Startmenü "Ein vorhandenes Android Studio-Projekt öffnen" und wählen Sie den Ordner, der Ihr Android-Projekt enthält.

Diese Arbeit für mich.

0
zerob13

Gradle-Dateien können an mehreren Stellen explizit gemacht werden, um solche Fehler zu vermeiden. Z.B. Veränderung

configurations {

zu 

project.configurations {

oder

task {
    description 'foo'

zu

task {
    setDescription 'foo'
0
tkruse

Ich habe das Problem in Android Studio gelöst, indem der Cache ungültig gemacht und neu gestartet wurde.

File-> Invalidate Caches / Restart..

 enter image description here

0
ahmadalibaloch

Ich hatte in IntelliJ ein ähnliches Problem für ein Kotlin-Projekt. Anscheinend bestand das Problem darin, dass in meinem Projekt, obwohl JDK 8 verwendet wurde, die Sprach- und API-Versionen irgendwie auf 1.3 gesetzt wurden. Siehe Projekteinstellungen> Facetten. In meinem Fall habe ich "Projekteinstellungen verwenden" angekreuzt, aber die manuelle Einstellung pro Facette kann auch funktionieren.

0
Tim Keating