Phiên bản Gradle 3.3 không hỗ trợ phương thức forTask () trên BuildActionExecuter


111

Tôi vừa cập nhật Android Studio của mình lên 3.0 canary 1. Bây giờ tôi đang làm việc trên dự án hiện có của mình trên Android Studio 3.0 canary 1. Theo mặc định gradle: 3.0.0-alpha1 được đặt trong dự án của tôi: gradle_file. Vì vậy, tôi đã thay đổi phiên bản gradle của mình thành 2.2.3 và bây giờ tôi gặp lỗi này:

Lỗi: Không thể hoàn tất quá trình thực thi Gradle.

Nguyên nhân: Phiên bản Gradle bạn đang sử dụng (3.3) không hỗ trợ phương thức forTasks () trên BuildActionExecuter. Hỗ trợ cho điều này có sẵn trong Gradle 3.5 và tất cả các phiên bản mới hơn.

Tôi đã đính kèm tệp gradle của mình ở đây

// 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
Bất cứ ai có thể đề xuất làm thế nào bạn có thể khắc phục những điều này mà không cần phải cập nhật phiên bản gradle và phiên bản plugin Android? Bởi vì làm như vậy đòi hỏi nhiều thay đổi khác mà chúng tôi không thể thực hiện vì một số ràng buộc kinh doanh.
Sasuke Uchiha

Câu trả lời:


196

Tôi vừa gặp vấn đề tương tự. Đã sửa lỗi bằng cách thay đổi Gradle phân phốiUrl trong "gradle-wrapper.properties".

Đây là những gì tôi đã cấu hình:

#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

để biết thêm chi tiết

Video ngoại lệ để trợ giúp migaration https://www.youtube.com/watch?v=oBsbI8ICYKg

xem thêm bình luận bên dưới từ @TmTron


19
Đối với bất kỳ ai muốn biết bản phân phối mới nhất, hãy truy cập thư mục services.gradle.org/distributions . Tất cả chúng đều được liệt kê
IG Pascual

4
Vui lòng đọc bình luận @IGPascual trước khi thay đổi sang phiên bản cụ thể, vì bạn chỉ có thể cập nhật phiên bản này lên phiên bản mới nhất hiện có. Khi nhận xét này được đăng, bản phát hành hiện tại là 4.0 (ổn định). Vì vậy, nó là an toàn nếu bạn thay đổi đểdistributionUrl=https\://services.gradle.org/distributions/gradle-4.0-all.zip
HendraWD

4
Chỉ cần cẩn thận khi bạn mở một ứng dụng nhiều mô-đun: Android Studio có thể chỉ hiển thị cho bạn một thuộc tính gradle-wrapper fiel trong chế độ xem Project-Android. để đảm bảo thay đổi mọi thứ, hãy sử dụng Tìm trong đường dẫn (CTRL + SHIFT + F) và tìm kiếm phân phốiUrl .
TmTron

Tôi cũng phải đối mặt với cùng một vấn đề với bên dưới lỗi 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. Vì vậy, tôi đã cập nhật tập tin gradle-wrapper.properties chodistributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip
ViramP

1
Cảm ơn bạn đã lưu ý @TmTron, đó là vấn đề của tôi. falico, nếu bạn không phiền, tôi nghĩ sẽ có lợi nếu làm nổi bật nhận xét của TmTron trong câu trả lời của bạn ở trên.
BareMetalCoder

64

Thay đổi trong tệp "gradle-wrapper.properties".

Đặt dòng này và Đồng bộ hóa Dự án-

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

Điều này sẽ hoạt động. Để Kiểm tra phiên bản mới nhất services.gradle.org/distributions

Sau khi thay đổi, Sync Project, CleanRebuild project một lần từ menu Build .


4
Kiểm tra services.gradle.org/distributions trước khi bạn thay đổi sang phiên bản cụ thể, vì bạn chỉ có thể cập nhật phiên bản này lên phiên bản mới nhất hiện có. Khi nhận xét này được đăng, bản phát hành hiện tại là 4.0 (ổn định). Vì vậy, nó là an toàn nếu bạn thay đổi để distributionUrl=https\://services.gradle.org/distributions/g‌​radle-4.0-all.zip, bởi vì nó là ổn định hơn so với milestone-1phiên bản
HendraWD

Đúng, Bạn nói đúng, luôn thích phiên bản ổn định hơn phiên bản khác. Nhưng bạn vẫn có thể sử dụng nó. @HendraWD Cảm ơn bạn đã bình luận.
Kailas Bhakade

Cập nhật Android Studio 2,3-3,0, Kiểm tra hướng dẫn chính thức từ youtube.com/watch?v=oBsbI8ICYKg
Kailas Bhakade

28

Điều này đã xảy ra khi cố gắng xây dựng apk gỡ lỗi.

GIẢI PHÁP: Cập nhật phiên bản Gradle lên 3.5

Điều hướng đến Tệp -> Cấu trúc dự án -> Dự án -> Phiên bản Gradle = 3.5

Điều này hoạt động cho Android Studio 3.0

đây là hình ảnh của menu nơi bạn phải thực hiện thay đổi


Đây là giải pháp cho những người mà cố ý không muốn nâng cấp lên gradle 4.
ram

Nó không. Nó nâng cấp lên phiên bản Gradle 3.5, mức tối thiểu cho chức năng mà anh ta muốn sử dụng.
Quinton M.

14

Vui lòng làm theo các bước sau:

  1. Mở dự án của bạn trong studio android
  2. Trong menu Android, mở gradle-wrapper.properties
  3. Thay đổi dòng url phân phối bằng dòng bên dưới

phân phốiUrl = https: //services.gradle.org/distributions/gradle-4.1-all.zip

  1. Đó là nó. Xây dựng dự án của bạn ngay bây giờ.

Ảnh chụp màn hình được đính kèm để hiểu thêm. nhập mô tả hình ảnh ở đây


Lỗi: Không thể tạo thư mục cha cho tập tin khóa C: \ Users \ Kaveesh \ .gradle \ wrapper \ dists \ gradle-4,1-tất cả \ bzyivzo6n839fup2jbap0tjew \ gradle-4,1-all.zip.lck
Kaveesh Kanwal

Nó đang hiển thị sự cố khóa. android studio không thể tạo thư mục.
Naveed Ahmad

5

Tôi đã giải quyết vấn đề bằng cách thay đổi phân phối phân phối trong mã sau đây trong tệp gradle-wrapper.properties

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

2

Sau khi thêm những thứ này với Gradle cấp cao nhất

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

Chúng tôi có hai cách để đối phó với nó.

  1. Bạn có thể cập nhật phiên bản gradle của mình từ sản phẩm phiên bản đầu tiên lên phiên bản 3.5;

  2. Hoặc, bạn có thể hình thành trình bao bọc gradle của mình thành phiên bản 4.1.

Tất cả các cách đều hữu ích.



0
  1. Mở gradle-wrapper.properties
  2. Thay thế:

    phân phốiUrl = https: //services.gradle.org/distributions/gradle-3.3-all.zip

Với:

distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip
  1. Bây giờ đồng bộ dự án

Bấm vào đây để hiểu thêm


0

đặt mã này trong tệp gradle-wrapper.properties và nó sẽ hoạt động với bạn

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.