Gradle 버전 3.3은 BuildActionExecuter에서 forTask () 메서드를 지원하지 않습니다.


111

방금 Android Studio를 3.0 canary 1로 업데이트했습니다. 이제 Android Studio 3.0 canary 1에서 기존 프로젝트를 작업하고 있습니다. 기본적으로 gradle : 3.0.0-alpha1 이 내 프로젝트 인 gradle_file에 설정되어 있습니다. 그래서 내 gradle 버전을 2.2.3으로 변경했는데 이제이 오류가 발생합니다.

오류 : Gradle 실행을 완료하지 못했습니다.

원인 : 사용중인 Gradle 버전 (3.3)은 BuildActionExecuter에서 forTasks () 메서드를 지원하지 않습니다. 이에 대한 지원은 Gradle 3.5 및 모든 이후 버전에서 사용할 수 있습니다.

여기에 내 gradle 파일을 첨부했습니다.

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

5
누구든지 gradle 버전과 Android 플러그인 버전을 업데이트하지 않고도 어떻게 해결할 수 있는지 제안 할 수 있습니까? 그렇게하려면 비즈니스 제약으로 인해 할 수없는 많은 다른 변경이 필요하기 때문입니다.
Sasuke Uchiha 2011

답변:


196

나는 방금 같은 문제를 겪었습니다. "gradle-wrapper.properties"에서 Gradle distributionUrl을 변경하여 문제를 해결했습니다.

내가 구성한 내용은 다음과 같습니다.

#Wed Mar 22 16:13:58 BRT 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

상세 사항은

migaration을 돕는 공식 비디오 https://www.youtube.com/watch?v=oBsbI8ICYKg

@TmTron의 아래 주석도 참조하십시오.


19
최신 배포판을 알고 싶으면 services.gradle.org/distributions 디렉토리로 이동하십시오 . 그들 모두가 나열됩니다
IG 파스 쿠알을

4
현재 사용 가능한 최신 버전으로 버전을 업데이트 할 수 있으므로 특정 버전으로 변경하기 전에 @IGPascual 주석을 읽으십시오. 이 댓글이 게시되었을 때 현재 릴리스는 4.0 (안정)입니다. 당신이 변경하면 그래서 안전distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-all.zip
HendraWD

4
다중 모듈 애플리케이션을 열 때주의하십시오. Android Studio는 Project-Android보기에서 하나의 gradle-wrapper 속성 파일 만 표시 할 수 있습니다. 모든 것을 변경하려면 경로에서 찾기 (CTRL + SHIFT + F)를 사용하고 distributionUrl을 검색하십시오 .
TmTron

나는 또한 아래 오류와 동일한 문제에 직면하여 Cause: The version of Gradle you are using (3.3) does not support the forTasks() method on BuildActionExecuter. Support for this is available in Gradle 3.5 and all later versions. gradle-wrapper.properties 파일을 업데이트했습니다distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip
ViramP

1
제 문제였습니다. @TmTron 님, 감사합니다. falico, 괜찮다면 위의 답변에서 TmTron의 의견을 강조하는 것이 도움이 될 것이라고 생각합니다.
BareMetalCoder

64

"gradle-wrapper.properties" 파일을 변경합니다 .

이 줄을 넣고 프로젝트 동기화-

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

작동합니다. 최신 버전을 확인하려면 services.gradle.org/distributions

변경 후 Build 메뉴 에서 Sync Project, CleanRebuild 프로젝트를 한 번 수행 합니다.


4
특정 버전으로 변경하기 전에 services.gradle.org/distributions 를 확인하십시오 . 현재 사용 가능한 최신 버전으로 버전을 업데이트 할 수 있기 때문입니다. 이 댓글이 게시되었을 때 현재 릴리스는 4.0 (안정)입니다. 당신이 변경할 경우 안전 그래서 distributionUrl=https\://services.gradle.org/distributions/g‌​radle-4.0-all.zip이보다 안정적이기 때문에, milestone-1버전
HendraWD

예, 맞습니다. 항상 다른 버전보다 안정적인 버전을 선호합니다. 하지만 여전히 사용할 수 있습니다. @HendraWD 의견을 주셔서 감사합니다.
Kailas Bhakade 2017 년

Android 스튜디오를 2.3에서 3.0으로 업데이트하는 중, youtube.com/watch?v=oBsbI8ICYKg의
Kailas Bhakade

28

이것은 디버그 APK를 빌드하려고 할 때 발생했습니다.

해결책 : Gradle 버전을 3.5로 업데이트

로 이동 한 파일 -> 프로젝트 구조는 -> 프로젝트 -> Gradle을 버전 3.5 =

이것은 Android Studio 3.0에서 작동합니다.

변경해야하는 메뉴 이미지입니다.


이것은 의도적으로 gradle 4로 업그레이드하고 싶지 않은 사람들을위한 솔루션입니다.
ram

그렇지 않습니다. 사용하려는 기능의 최소값 인 Gradle 버전 3.5로 업그레이드됩니다.
Quinton M.

14

아래 단계를 따르십시오.

  1. Android Studio에서 프로젝트 열기
  2. Android 메뉴에서 gradle-wrapper.properties를 엽니 다 .
  3. 아래 줄로 배포 URL 줄 변경

distributionUrl = https : //services.gradle.org/distributions/gradle-4.1-all.zip

  1. 그게 다야. 지금 프로젝트를 빌드하십시오.

이해를 돕기 위해 스크린 샷이 첨부되어 있습니다. 여기에 이미지 설명 입력


오류 : 잠금 파일 C에 대한 상위 디렉토리를 만들 수 없습니다 : \ 사용자 \ Kaveesh \ .gradle \ 래퍼 \ dists \ Gradle을-4.1-모든 \ bzyivzo6n839fup2jbap0tjew \ Gradle을-4.1-all.zip.lck
Kaveesh Kanwal

잠금 문제를 보여줍니다. 안드로이드 스튜디오는 디렉토리를 생성 할 수 없습니다.
Naveed 아마드

5

gradle-wrapper.properties 파일의 다음 코드에서 changinf distributionUrl로 문제를 해결했습니다.

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

2

Top level Gradle로 추가하면

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

    repositories {
        maven { url 'https://maven.google.com' }
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-alpha9'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url 'https://maven.google.com' }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

1

우리는 그것을 처리하는 두 가지 방법이 있습니다.

  1. Gradle의 버전을 초기 버전에서 3.5 버전 제품으로 업데이트 할 수 있습니다.

  2. 또는 gradle 래퍼를 4.1 버전으로 계산할 수 있습니다.

모든 방법이 모두 유용합니다.




0

이 코드를 gradle-wrapper.properties 파일에 넣으면 함께 작동합니다.

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.