'(groovy.lang.Closure)'에는 'dependencies'를 적용 할 수 없습니다.


121

이 오류를 수정할 수 없습니다.

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
나는 이것들이 매우 관련이 있다고 확신하며 거기에 내 대답이 암시하는 것처럼 오류 표시가 버그이므로 솔루션의 불일치라고 생각합니다. stackoverflow.com/questions/29133601/... 즉 여기 상단의 대답은 당신의 "현재"Gradle을 buildscript에 대한 몇 가지 매우 유효한 일반 포인트를하지 않는 것은 아니다
셉 Andraos

답변:


22

Android 스튜디오가 생성하는 항목에 따라 최상위 프로젝트 파일 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블록을 제거하십시오 .

편집 : 또한 최신 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()
    }
}

11
나는 여전히 같은 문제를했다 :(
Ashwani Kottapalli

솔직히 말해서 Crouton, Universal-Image-Loader 및 googleplayServices 종속성에서 추가 따옴표와 공백을 수정해야한다고 생각합니다. developer.android.com/google/play-services/setup.html
EpicPandaForce 2015

그게 작동하지 않습니다 ... 당신은 나에게 fb id 또는 다른 사람을 줄 수 있습니까 ... 그래서 우리는 운동을 할 수 있습니까? 부디?
Ashwani Kottapalli 2015

...이 경우, 나는 당신의 버그가 무엇인지 모릅니다. :( 마지막으로이 일이 저에게 일어 났을 때, 제 안드로이드와 gradle 플러그인은 구식이었고 더 이상 존재하지 않는 구성 유형을 사용하고있었습니다
EpicPandaForce

1
명령 줄을 사용하는지 IDE를 사용하는지에 따라 다릅니다. 그리고 IDE라면 어떤 IDE.
EpicPandaForce 2015

247

환경 설정으로 이동하여 "기본 gradle 래퍼 사용"을 선택한 다음 프로젝트를 다시 빌드 할 수 있습니다. 그것은 나를 위해 잘 작동했습니다. 여기에 이미지 설명 입력


4
왜 이런 일이 발생했는지 설명하는 사람이 있습니까?
racs

1
1.4에서 1.5로 업데이트 한 후이 설정이 내 컴퓨터에서 로컬 배포를 사용하도록 "재설정"된 것 같습니다. 이 답변은 확실히 문제를 해결했습니다.
seeming.amusing

3
143.2532994 버전에서이 문제가 다시 발생하는 것 같습니다 ... 나와 같은 사람 ...? 너무 짜증나 ..
Arst

선택한 답변이 정교하고 정직한 매우에도 불구하고,이 대답은 크기 더 upvotes의 순서가 이유가있다
파벨 즈데넥

아, 네, 이유가 있습니다-맥 사용자. Windows에서는 페이지가 다릅니다. "표시 할 내용 없음". 표시된 답변은 적어도 어쨌든 유용합니다.
Gangnus

37

이동

윈도우

파일-> 설정-> 빌드, 실행, 배포-> 빌드 도구-> Gradle

환경 설정-> 빌드, 실행, 배포-> 빌드 도구-> Gradle

기본 gradle 래퍼 사용을 선택하십시오.


1
Windows. 선택할 항목이 없습니다.
Gangnus

2
먼저 프로젝트를 먼저 열어야합니다.
Raptor

그리고 Linux 에서는 Windows에서와 동일합니다 : 파일-> 설정-> 빌드, 실행, 배포-> 빌드 도구-> Gradle. 답변을 편집하고 "Windows / Linux"를 작성할 수 있습니다.
lenooh

18

내 문제는 전체 build.setting 파일이 cannot be applied to '(groovy.lang.Closure)'특정 변수에서 발생하는 대신 경고 메시지 로 가득 차 있다는 것입니다.

나는 다른 사람들이 제공하는 모든 솔루션을 시도했지만 그중 어느 것도 나를 위해 작동하지 않습니다. 나는이 단계를 끝내고 매력처럼 작동합니다. 동일한 문제가 발생하면 시도해보십시오.

  1. 파일 열기 및 편집 : yourproject/gradle/wrapper/gradle-wrapper.properties . 아래 이미지와 같이 콘텐츠를 편집하여 gradle 배포 버전을 업데이트 한 다음 저장합니다.
  2. 이 폴더 삭제 : yourproject/.gradle.
  3. 를 클릭 Sync project with gradle files하면 시작됩니다.

여기에 이미지 설명 입력


1
yourproject / .gradle 디렉토리를 삭제할 필요가 없습니다. 그렇게하려면 org.gradle.daemon = true (일반적인 최적화)를 사용하여 gradle.properties 파일을 추가하는 것과 같이 여기에서 만든 모든 사용자 지정을 저장해야합니다. 그러나 간단히 다시 빌드 할 수 있으며 gradle 래퍼는 이전 버전과 함께 distributionUrl에 지정된 새 버전을 다운로드합니다. 이전 버전 디렉토리가 프로젝트의 gradle 디렉토리에 남아있는 것은 괜찮습니다.
Mark McClelland

에서 gradle 버전을 업데이트하면 gradle-wrapper.properties문제 가 해결되었습니다. 감사!
BVB

18

이미 "기본 gradle 래퍼"를 사용 중이고 도움이되지 않는 경우 :

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 Studio 및 IntelliJ Idea에서 작동했습니다)


나를 위해 일했습니다. 참고할 사항은 번들로 제공되는 대신 고유 한 gradle을 사용하는 경우 .gradle홈 디렉토리에서도 삭제해야합니다 .

1
2) 명령을 수행하는 것만으로도 효과적이었습니다. 감사!!
manolodewiner

2
5 초 동안 작동했습니다. 그런 다음 다시 그 오류가 발생했습니다.
Yar

IntelliJ가 최근 프로젝트를 제대로 구문 분석하여 얼마나 나빠 졌는지 약간 실망 스럽습니다. 이것은 예전의 장점이었습니다 ... 이제 조금이라도 비틀 거리는 것처럼 느껴집니다.
smaudet

4

gradle홈 디렉토리가 잘못되었다는 경고를 발견했을 때 다른 답변 중 하나를 시도하기 위해 기본 설정으로 이동했습니다 . 그래서 파일 브라우저를 열고 최신 gradle버전을 선택했는데 모든 오류가 사라졌습니다. 아래에 표시된 이미지.

여기에 이미지 설명 입력


1

문제는 경고를 제공하는 코드와는 전혀 관련이 없으며 대부분 proguard 파일 일 가능성이 높습니다. 내 코드에 다음과 같은 경고가 표시되었습니다.

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

주석 처리하면 runProguard false내 모든 문제가 해결됩니다.


변경할 경우 다니엘 윌슨은 도움이 되는가 runProguardminifyEnabled대신? 더 많은 정보가 제공됩니다 여기에
Sergii N.

1

나는 안드로이드 스튜디오 2.2에서 같은 문제가 있습니다.

실물:

android {
...
}

dependencies {
...
}

이동 dependenciesandroid:

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

1

캐시를 무효화하고 다시 시작하여 Android Studio의 문제를 해결했습니다.

File-> Invalidate Caches / Restart..

여기에 이미지 설명 입력


1

Kotlin 프로젝트의 IntelliJ에서 이와 유사한 문제가 발생했습니다. 문제는 내 프로젝트에서 JDK 8을 사용하도록 설정되었지만 언어 및 API 버전이 어떻게 든 1.3으로 설정되어 있다는 것입니다. 프로젝트 환경 설정> 패싯을 참조하십시오. 제 경우에는 "프로젝트 설정 사용"을 선택했지만 패싯별로 수동으로 설정하는 것도 작동 할 수 있습니다.


0
  1. 프로젝트 닫기 (파일 / 프로젝트 닫기),
  2. 시작 메뉴에서 "기존 Android 스튜디오 프로젝트 열기"를 선택하고 Android 프로젝트가 포함 된 폴더를 선택합니다.

이것은 나를 위해 일합니다.


0

Gradle 파일은 이러한 오류를 방지하기 위해 여러 위치에서 명시 적으로 만들 수 있습니다. 예 : 변경

configurations {

project.configurations {

또는

task {
    description 'foo'

task {
    setDescription 'foo'

0

문제를 해결하려면 프로젝트를 닫은 다음 시작 메뉴에서 "기존 Android 스튜디오 프로젝트 열기"를 선택하고 Android 프로젝트가 포함 된 폴더를 선택하십시오. .iml 프로젝트 파일이 아닌 폴더를 선택 하십시오.


0

"android"섹션과 Re-Sync (새로 고침) 프로젝트의 동일한 위치에 "buildTypes"를 잘라내어 붙여 넣습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.