Gradle เวอร์ชัน 3.3 ไม่รองรับเมธอด forTask () บน BuildActionExecuter


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) ไม่รองรับเมธอด forTasks () บน BuildActionExecuter การสนับสนุนนี้มีอยู่ใน 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

คำตอบ:


196

ฉันเพิ่งมีปัญหาเดียวกัน แก้ไขด้วยการเปลี่ยน Gradle distributionUrl ใน "gradle-wrapper.properties"

นี่คือสิ่งที่ฉันกำหนดค่า:

#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

สำหรับรายละเอียดเพิ่มเติม

วิดีโออย่างเป็นทางการเพื่อช่วยในการโยกย้าย https://www.youtube.com/watch?v=oBsbI8ICYKg

ดูความคิดเห็นด้านล่างจาก @TmTron


19
สำหรับคนที่ต้องการที่จะรู้ว่าการกระจายล่าสุดไปที่ไดเรกทอรี services.gradle.org/distributions รายการทั้งหมดนี้
IG Pascual

4
โปรดอ่านความคิดเห็นของ @IGPascual ก่อนที่จะเปลี่ยนเป็นเวอร์ชันเฉพาะเนื่องจากคุณสามารถอัปเดตเวอร์ชันเป็นเวอร์ชันใหม่ล่าสุดที่มีอยู่ในขณะนี้ได้ เมื่อความคิดเห็นนี้โพสต์รุ่นปัจจุบันคือ 4.0 (เสถียร) ดังนั้นจึงปลอดภัยหากคุณเปลี่ยนเป็นdistributionUrl=https\://services.gradle.org/distributions/gradle-4.0-all.zip
HendraWD

4
โปรดระวังเมื่อคุณเปิดแอปพลิเคชันแบบหลายโมดูล: Android Studio อาจแสดงคุณสมบัติ Gradle-wrapper เพียงหนึ่งรายการในมุมมอง Project-Android เพื่อให้แน่ใจว่าทุกอย่างมีการเปลี่ยนแปลงการใช้ค้นหาในเส้นทาง (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 นั่นคือปัญหาของฉัน ฟาลิโกถ้าคุณไม่รังเกียจฉันคิดว่ามันจะเป็นประโยชน์ที่จะเน้นความคิดเห็นของ TmTron ในคำตอบของคุณด้านบน
BareMetalCoder

64

เปลี่ยนไฟล์"gradle-wrapper.properties"

วางบรรทัดนี้และ Sync Project-

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

วิธีนี้จะได้ผล สำหรับตรวจสอบเวอร์ชันล่าสุดservices.gradle.org/distributions

หลังจากเปลี่ยนแปลงแล้วให้ซิงค์โครงการล้างและสร้างโครงการใหม่หนึ่งครั้งจากเมนูสร้าง


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

การอัปเดต Android Studio จาก 2.3 เป็น 3.0 ตรวจสอบแนวทางอย่างเป็นทางการจากyoutube.com/watch?v=oBsbI8ICYKg
Kailas Bhakade

28

สิ่งนี้เกิดขึ้นเมื่อพยายามสร้าง debug apk

วิธีแก้ไข: อัปเดตเวอร์ชัน Gradle เป็น 3.5

ไปที่File -> Project Structure -> Project -> Gradle Version = 3.5

ใช้ได้กับ Android Studio 3.0

นี่คือภาพของเมนูที่คุณต้องทำการเปลี่ยนแปลง


นี่เป็นวิธีแก้ปัญหาสำหรับผู้ที่ไม่ต้องการอัปเกรดเป็น gradle 4 โดยเจตนา
ราม

มันไม่ มันอัปเกรดเป็น 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: \ Users \ Kaveesh \ .gradle \ wrapper \ dists \ gradle-4.1-all \ bzyivzo6n839fup2jbap0tjew \ gradle-4.1-all.zip.lck
Kaveesh Kanwal

กำลังแสดงปัญหาการล็อก android studio ไม่สามารถสร้างไดเร็กทอรี
Naveed Ahmad

5

ฉันแก้ไขปัญหาโดย changinf distributionUrl ในรหัสต่อไปนี้ในไฟล์ gradle-wrapper.properties

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

2

เมื่อเพิ่มสิ่งเหล่านี้ด้วย 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 wrapper ของคุณเป็นเวอร์ชัน 4.1

ทุกวิธีมีประโยชน์ทั้งคู่




โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.