"зависимости" не могут применяться к '(groovy.lang.Closure)'

Я не могу исправить эту ошибку:

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

Это мой файл gradle:

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

На основе того, что генерирует Android Studio, вам нужен файл проекта верхнего уровня 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 блок.

EDIT: я также начал получать эту ошибку с последней версией Android Studio, все, что мне нужно было сделать, это добавить новую версию плагина Gradle и 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()
    }
}

Ответ 2

Вы можете перейти к настройкам и выбрать "использовать по умолчанию gradle обертку", а затем перестроить проект. Это сработало для меня: введите описание изображения здесь

Ответ 3

Перейдите к

Окно

Файл → Настройки → Сборка, выполнение, развертывание → Инструменты сборки → Gradle

Mac

Предпочтение → Сборка, выполнение, развертывание → Инструменты сборки → Gradle

и выберите Использовать по умолчанию Gradle обертку

Ответ 4

Моя проблема в том, что весь файл build.setting был занят cannot be applied to '(groovy.lang.Closure)' предупреждающими сообщениями вместо того, чтобы происходить на какой-либо конкретной переменной.

Я пробовал все решения, предоставляемые другими, но никто из них не работает для меня. Я закончил делать эти шаги, тогда это работает как шарм. Если вы столкнулись с одной и той же проблемой, попробуйте попробовать.

  • Откройте и отредактируйте файл: yourproject/gradle/wrapper/gradle-wrapper.properties. Измените содержимое, чтобы обновить версию дистрибутива gradle, как показано на изображении ниже, затем сохраните.
  • Удалить эту папку: yourproject/.gradle.
  • Нажмите Sync project with gradle files, тогда вам будет хорошо.

введите описание изображения здесь

Ответ 5

Если вы уже используете "по умолчанию gradle обертка", и это не помогает:

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

Если он также не поможет выполнить два шага:

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

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

После перезапуска предупреждение должно исчезнуть.

(Для меня это сработало и для Android Studio и для IntelliJ Idea)

Ответ 6

Я воспользовался настройками, чтобы попробовать один из других ответов, когда я заметил предупреждение о том, что мой домашний каталог gradle был неправильным. Поэтому я открыл браузер файлов и выбрал новую версию gradle, и все ошибки исчезли. Изображение, показанное ниже.

введите описание изображения здесь

Ответ 7

Готов поспорить, что проблема полностью не связана с частью кода, которая дает вам предупреждения, скорее всего, это ваш файл proguard. В моем коде я получил следующее предупреждение:

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

Прокомментировав runProguard false, все мои проблемы уйдут, иди цифрой:)

Ответ 8

У меня такая же проблема в android studio 2.2, она работает для меня:

оригинал:

android {
...
}

dependencies {
...
}

переместить dependencies в android:

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

Ответ 9

  • Закройте проект (файл/закрыть проект),
  • Выберите "Открыть существующий проект Android Studio" в меню "Пуск" и выберите папку, содержащую ваш проект Android.

Эта работа для меня.

Ответ 10

Gradle файлы можно сделать явным в нескольких местах, чтобы избежать таких ошибок. Например. Изменение

configurations {

to

project.configurations {

или

task {
    description 'foo'

к

task {
    setDescription 'foo'

Ответ 11

Чтобы устранить проблему, просто закройте проект, затем выберите "Открыть существующий проект Android Studio" в меню "Пуск" и выберите папку, содержащую ваш проект Android. Остерегайтесь, выберите папку, а не файл проекта .iml.

Ответ 12

Я решил проблему в Android Studio, выполнив недействительность кэша и перезагрузив его.

File-> Invalidate Caches / Restart..

введите описание изображения здесь

Ответ 13

Вырезать, а затем вставить "buildTypes" в том же месте в разделе "android" и "Re-Sync (refresh) Project

Ответ 14

Я исправил эту проблему с помощью gradle 2.10.

Загрузите его здесь: http://gradle.org/gradle-download/

И установите локальный дистрибутив gradle следующим образом:

as shown here