groovy.lang.Closure에는 buildTypes를 적용 할 수 없습니다


241

내 프로젝트 gradle 파일 에이 경고가 나타납니다.

경고 : (16, 5) '(groovy.lang.Closure <com.android.build.gradle.internal.dsl.BuildType>)'에는 'buildTypes'를 적용 할 수 없습니다.

내 buildTypes 섹션은 다음과 같습니다.

    buildTypes {
        debug {
            debuggable true
        }
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
        }
    }

현재 Android Studio 1.1.0, compileSdkVersion 22, buildToolsVersion 22.0.0 및 targetSdkVersion 22를 사용하고 있습니다. 21로 백업을 시도했지만 여전히 경고가 표시되었습니다.

이 경고의 원인 및 해결 방법은 무엇입니까?


플러그인 'com.android.aplication'또는 'com.android.library'를 적용 했습니까?
Kirill Boyarshinov

@ 키릴 : com.android.application
Jim Vitek

답변:


471

나에게 위의 솔루션을 적용해도 문제가 해결되지 않았습니다. 대신 Android Studio의 설정으로 이동하여 "그라들 래퍼 사용"을 선택해야했습니다.

Android Studio에서 File \ Settings \ Build, Execution, Deployment \ Build tools \ Gradle을 선택하십시오.

(Mac 사용자 : Android Studio \ Preferences ... \ 빌드, 실행, 배포 \ 빌드 도구 \ Gradle )

마크 : 기본 gradle 래퍼 사용 (기본값)

빌드 파일에서 '(groovy.lang.Closure') 경고에 적용 할 수없는 모든 '이 제거되었습니다.


2
이것은 정답입니다 .Windows에서 프로젝트를 열었을 때 Linux에서 Dropbox를 통해 문제가 발생하면 gradle 배포 위치가 변경되므로 기본 gradle 래퍼를 사용하는 것이 좋습니다.
Rodrigo Direito

1
나는 같은 문제가 있었다. 팀원은 Windows 컴퓨터에서 작업합니다. 업데이트를 가져 오면이 문제가 발생합니다.
Chip

@ Waterbear 나는 이것 때문에 원래의 답변을 편집했습니다 (나는 이것에 대해 잠시 검색했습니다 : D). 동료 검토 후 이용 가능 :) 참조 : i.imgur.com/BtCijIW.png
StefMa

어떻게 든 1.3.1 Mac의 AS는 빌드-> 정리 에서이 설정을 재설정합니다. 다시 설정하면 빌드가 수정됩니다. 감사!
Den Drobiazko

11
Android Studio에서 바보 같은 것이 빌드 대상 22와 buildToolsVersion 22.0.1로 만들 때 경고를 표시하기 시작했습니다 .... '기본 gradle 래퍼 사용'이 이미 기본 (AS 2.0 베타)으로 표시되어 있습니다 ... 내 코드 블록을 잘라 내고 같은 위치에 붙여 넣습니다 (코드 변경 없음, 구성 변경 없음) .... 경고가 제거되었습니다!
Umair

127

나는 같은 문제가 있었다. android 섹션의 마지막 항목으로 buildTypes를 이동하면 나에게 도움이되었습니다.

android {
    ...
    buildTypes {
    }
}

2
그 위치가 차이를 가져야하지만 분명히 그렇습니다.
Jason Crosby

이것은 나에게도 효과적입니다. 이것이 어떻게 작동하는지 어떤 아이디어가 있습니까? 감사.
myNameCoad

4
이것은 나에게도 효과가있는 것처럼 보였지만 변경 사항을 취소하고 해당 블록을 동일한 위치에 복사 / 붙여 넣기하면 경고도 사라졌습니다. 그런 다음 모든 작업을 취소하고 프로젝트를 닫았다가 다시 열어 경고를 복제하려고 시도했지만 사라졌습니다. 나는 그것이 그런 종류의 경고 중 하나에 불과하다고 생각합니다 .
elliptic1 1

나에게,에 대한 경고를 제외하고는 베드로의 대답으로 거의 경고가 사라졌습니다 buildTypes. 그런 다음이 솔루션은 마지막 솔루션에서 효과적이었습니다!
hata

76

1 "android"섹션에서 같은 위치에 "buildTypes"잘라 내기 및 붙여 넣기

2 재 동기화 프로젝트


16

이 문제를 해결하려면 Android Studio에서 파일-> 설정으로 이동하십시오 . 설정에서 빌드, 실행, 배포-> 빌드 도구-> Gradle 을 선택하고 "기본 gradle 래퍼 사용 (권장)" 옵션을 선택하십시오.

build.gradle 을 다시 빌드 하면 완전히 괜찮을 것입니다.


1
이것은 정답이거나 적절한 gradle 위치를 선택할 수 있습니다
void pointer

1
@Peter의 답변과 다른 점.
AndyW

13

위의 옵션 중 어느 것도 작동하지 않으면 다음을 수행하십시오.

  1. Project"프로젝트 탐색기"에서 프로젝트를 Perspective로 변경하십시오 .
  2. 삭제 .gradlebuild폴더.
  3. 클릭 파일 -> 무효화 캐시 / 다시 시작 ... -> 무효화하고 다시 시작
  4. 이제는 작동하고 행복한 코딩입니다.

7

이 작업을 간단히 수행하여 문제를 해결했습니다. "파일"을 클릭 한 다음 "캐시 무효화 / 다시 시작"을 선택하십시오.


6

이 Gradle 문제를 해결하는 가장 쉬운 방법은 프로젝트를 다시 작성하여 Android Studio가 Gradle을 재구성하도록하는 것입니다.

"기존 Android Studio 프로젝트 열기"를 선택하고 프로젝트 폴더를 선택하십시오.

자세한 내용은 여기를 참조 하십시오 .


4

이것은 나를 위해 일했다 :

buildTypes.debug {
    ext.enableCrashlytics = false
}

buildTypes.release {
    debuggable false
    zipAlignEnabled true
    minifyEnabled false
    signingConfig signingConfigs.release
}

4

프로젝트를 환경으로 가져올 때 Gradle 플러그인이 원래 위치와 다른 위치에 설치되면 문제가 발생합니다. Gradle 설치 위치를 지정하면됩니다.

buildTypes 또는 defaultConfig 또는 다른 것을 옮기는 것은 완벽한 해결책이 아닙니다.


이것이 내가이 문제를 마침내 해결 한 방법 ... 1. Android Studio에서 다음으로 이동합니다 : File | 설정 | 파일 | 설정 | 빌드, 실행, 배포 | 빌드 도구 | Gradle 2. 다음을 유지하는 것이 권장 됨에도 불구하고이 확인란이 선택되지 않았는지 확인하십시오 ... 기본 Gradle 래퍼 사용 (권장) 3.이 확인란이 선택되어 있는지 확인하십시오 ... 로컬 Gradle 배포 4를 사용하십시오. 이것은 나중에 gradle-nn과 함께 ... C : / Program Files / Android / Android Studio1 / gradle / gradle-2.4 Android Studio를 다시 시작하고 프로젝트를 다시 빌드해야 할 수도 있지만 문제가 해결되었습니다.
Mick

3

당면한 문제는 아마도 Android Studio 설정이 아마도 업그레이드에 수입이 여전히 Gradle을-2.4를 가리키는 또는 Android 스튜디오 1.5 예상하는 것보다 다른 버전되었다.

이 문제를 해결하기 위해, 당신은 개방해야 설정 하고 이동 빌드, 실행, 배포> 빌드 도구> Gradle을 하고 로컬 Gradle을 유통의 홈 경로를 변경 또는 기본 Gradle을 래퍼를 선택합니다.

프로젝트를 적용하고 다시 동기화하십시오.


2

나는 같은 문제가 있었다. 새 프로젝트를 시작하고 효과가 있었으므로 build.gradle 파일을 방금 복사했습니다. 필자의 경우 유일한 차이점은 compileOptions 섹션이 없다는 것입니다. 프로젝트에서 제거하고 gradle을 동기화하고 compileOptions 섹션을 다시 삽입 한 다음 gradle을 다시 동기화했습니다.


2

Android Studio에서 파일-> 설정으로 이동하십시오. 다음으로 Build, Execution, Deployment-> Build Tools-> Gradle을 선택하고 "기본 gradle wrapper 사용 (권장)"을 선택하십시오.

프로젝트를 다시 빌드하십시오.


2

내 경우에는 내 buildTypes섹션이productFlavors 섹션 . 그들의 위치를 ​​바꾸는 것은 경고를 제거했다 :

전에:

buildTypes {

        debug {
            minifyEnabled false
            shrinkResources false
            ...//etc
        }
 }

 productFlavors {
    demo {
        ...//etc
    }
 }

후:

 productFlavors {
    demo {
        ...//etc
    }
 }    

 buildTypes {

        debug {
            minifyEnabled false
            shrinkResources false
            ...//etc
        }
 }

android섹션 상단에 다음 구성으로 Android Studio 2.1.2를 사용하고 있습니다.

android {
    compileSdkVersion 24
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.xyz.abc"
        minSdkVersion 14
        targetSdkVersion 24
        //..etc

1

Android Studio를 업데이트 한 후이 경고가 나타났습니다.

설정 >> 빌드 도구 >> Gradle 로 이동했을 때 gradle 버전이 2.6에서 2.8로 업데이트되었으므로 Local Gradle 경로가 유효하지 않은 것으로 나타났습니다.

새로운 경로를 수정하고 재 동기화 gradle이 경고를 제거했습니다.

다른 방법은을 사용하는 것 gradlewrapper입니다.


0

gradle-wrapper.properties에서 distributionUrl = https : //services.gradle.org/distributions/gradle-2.1-bin.zip을 gradle-2.1-all.zip으로 변경하면 문제가 해결되었습니다.


0

편집 : 이것은 내가이 문제를 마침내 해결 한 방법 ...

  1. Android Studio에서 다음을 탐색하십시오.

    파일 | 설정 | 빌드, 실행, 배포 | 빌드 도구 | 그래들

  2. 유지하는 것이 좋습니다에도 불구하고 이것이 선택되어 있지 않은지 확인하십시오 ...

    기본 Gradle 래퍼 사용 (권장)

  3. 그리고 이것도 확인되었습니다 ...

    로컬 gradle 배포 사용

  4. 그 Gradle Home은 나중에 gradle-nn으로 설정되어 있습니다 ...

    C : / 프로그램 파일 / Android / Android Studio1 / gradle / gradle-2.4

Android Studio를 다시 시작하고 프로젝트를 다시 빌드해야 할 수도 있지만 문제가 해결되었습니다.

편집이 끝났습니다.

나는이 문제를 처음 접하는 사람들 에게이 문제를 무시하도록 조언하기 위해 이것을 게시하고 있습니다. 프로젝트는 관계없이 완벽하게 실행됩니다. 이것은 빌드 시스템의 버그 일 뿐이며 곧 수정 될 것입니다. 나는 의견을 게시하고 다시 활발한 주제 인 곳에서 투표했습니다 ...

https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars&groupby=&sort=&id=76719

다음 세 가지 스레드의 제안에 실패한 후 전체 프로젝트를 처음부터 다시 작성했습니다. 새 Android Studio 프로젝트를 시작하고 빌드 시스템에서 생성 한 파일을 무시하고 프로젝트를 다시 빌드 한 모든 원본 라이브러리 및 기본 파일을 복사했습니다. " '(groovy.lang.Closure)'에 적용 할 수없는"경고를 제외한 모든 것이 괜찮 았습니다. 경고가 다시 나타납니다. 그런 다음이 제안을 다시 살펴보고 뭔가를 간과하지 않았 음을 확신했습니다.

1 buildTypes는 groovy.lang에 적용 할 수 없습니다. 클로저는 Android Studio의 설정으로 이동하여 "그라들 래퍼 사용"을 선택하십시오. 래퍼 (기본값) 빌드 파일에서 '(groovy.lang.Closure') 경고에 적용 할 수없는 모든 '가 제거되었습니다.

2 '(groovy.lang.Closure)'에는 '종속성'을 적용 할 수 없습니다 . 파일을 열고 편집하십시오 : yourproject / gradle / wrapper / gradle-wrapper.propertie. 아래 이미지와 같이 내용을 편집 한 후 저장하십시오. yourproject / .gradle 폴더를 삭제하십시오. gradle 파일과 프로젝트 동기화를 클릭하면 좋습니다.

3 https://github.com/DrKLO/Telegram/issues/870

내 구성은 Android Studio 1.3, compileSdk 버전 22, buildTools 버전 "22.0.1"입니다.



0

내가 제거하기 위해해야 ​​할 모든 것

productFlavors {
}

에서

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

경고가 사라졌습니다.

최종 모습은 이렇습니다

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

0

변경 buildToolsVersion에서

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.2" 
.. 
}

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.1" 
.. 
}

나를 위해 일했다.

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