ข้อผิดพลาด: ไม่สามารถเปิดไฟล์ zip แคชอ้างอิงของ Gradle อาจเสียหาย


93

ฉันอัปเดต android studio 2.3 และมีข้อผิดพลาด gradle ไม่ได้สร้างและทำให้ฉันมีข้อผิดพลาดเดียวกันสำหรับทุกโครงการ

Error:Failed to open zip file.
Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
<a href="syncProject">Re-download dependencies and sync project (requires network)</a>
<a href="syncProject">Re-download dependencies and sync project (requires network)</a>

ฉันได้ค้นหาวิธีแก้ไขแล้ว แต่ไม่พบเลย ฉันเหนื่อย:

Invalidate Caches / Restart...

แต่ไม่มีอะไรเปลี่ยนแปลง


ตอบโดย Hamid Asghari เป็นทางออกที่ดีกว่า
Muhammad Hassaan

คำตอบ:


162

อัปเดต 17 กรกฎาคม 2561:

แม้ว่าวิธีแก้ปัญหาต่อไปนี้จะยังคงใช้งานได้ ณ วันนี้ฉันก็พบ (ขอบคุณคำตอบที่โพสต์โดย Hamid Asghari และความคิดเห็นที่โพสต์โดย Mahendra Dabi) ซึ่งเพียงแค่ลบไดเรกทอรี gradle dist และทำการรีบูต ide ก็จะแก้ไขได้ ปัญหา (โปรดอ่านโพสต์ Hamid สำหรับคำตอบแบบเต็มและจำไว้ว่า OSX และ Linux มีเส้นทางการไล่ระดับเดียวกัน)

หากคุณยังต้องการทำตามวิธีการแก้ปัญหาเดิมของฉันอย่างน้อยคุณควรพิจารณาใช้ Gradle เวอร์ชันล่าสุด (ลิงก์โดยตรงของที่เก็บการกระจาย Gradle: https://services.gradle.org/distributions/ )


คำตอบเดิม (ลงวันที่ 7 มีนาคม 2017):

เมื่อเช้านี้ฉันประสบปัญหาเดียวกันหลังจากอัปเกรด Android Studio เป็น 2.3 วิธีแก้ปัญหา:

1) ดาวน์โหลด Gradle 3.3 ไบนารีด้วยตนเอง (ลิงก์โดยตรง: https://services.gradle.org/distributions/gradle-3.3-bin.zip )

2) เปิดไดเร็กทอรีรูทของสตูดิโอ android ของคุณและแตกไฟล์ zip ไปยังโฟลเดอร์ gradle (ตัวอย่างเช่นในเครื่อง Debian ของฉันเส้นทางแบบเต็มคือ /opt/android-studio/gradle/gradle-3.3)

3) เปิด Android Studio ไปที่ File-> Settings-> Build, Exectution, Deployment-> Gradle และตั้งค่า "Gradle home" เพื่อชี้โฟลเดอร์ gradle-3.3 ใหม่ของคุณ

4) ซิงค์และคุณพร้อมที่จะไป!


5
การลบโฟลเดอร์ dist จะทำให้ทุกอย่างมีรูปร่าง
AouledIssa

13
ลบเนื้อหาของไดเร็กทอรีต่อไปนี้: macOS: ~ / .gradle / wrapper / dists Windows: C: \ Users \ your-username \ .gradle \ wrapper \ dists
Mahendra Dabi

หากปุ่ม "Gradle home" ถูกปิดใช้งานคุณสามารถตรวจสอบปุ่มตัวเลือก "use local gradle distribution" เหนือ "Gradle home"
WW00WW

1
@Luca D'Amico แม้ว่าคุณจะพูดถึงฉันในการอัปเดตของคุณ แต่ก็เป็นเพียงสำเนาคำตอบของฉันนี่เป็นพฤติกรรมที่ไม่ยุติธรรมและไม่สามารถยอมรับได้ในการได้รับคะแนนชื่อเสียง
Hamid Asghari

@ Hamid Asghari แล้วจะทำยังไงดี? คุณบอกฉัน. ฉันสามารถแก้ไข "อัปเดต" ได้หากต้องการ แก้ไข: ฉันแก้ไข "อัปเดต" เพื่อให้คุณมีความสุข
Luca D'Amico

187

ซ่อมแซมการติดตั้ง Gradle

สิ่งนี้มักเกิดขึ้นเมื่อเกิดข้อผิดพลาดในการเปิดตัวครั้งแรกของ Android Studio (เช่นระบบขัดข้องการเชื่อมต่อขาดหายหรืออะไรก็ตาม)

ในการแก้ไขปัญหานี้ให้ปิด Android Studio และลบเนื้อหาของไดเรกทอรีต่อไปนี้ไฟล์ที่จำเป็นจะถูกดาวน์โหลดในการเปิดตัวครั้งต่อไปของ IDE

macOS: ~/.gradle/wrapper/dists

ลินุกซ์: ~/.gradle/wrapper/dists

Windows: C:\Users\your-username\.gradle\wrapper\dists

ในขณะที่ดาวน์โหลด Gradle ด้วยตนเองใช้งานได้ฉันขอแนะนำให้ปล่อย Android Studio เอง


1
ทางออกที่ดีกว่า และวิธีที่แนะนำ
Muhammad Hassaan

5
คุณอาจมีโปรเจ็กต์ที่แตกต่างกันในการสร้างแบบไล่สี ดังนั้นลบเฉพาะไดเร็กทอรีนั้นจาก dist เช่น. ฉันมีปัญหากับ gradle-4.6-all ดังนั้นฉันจึงลบเฉพาะ dists / gradle-4.6-all /
user1517153

43

ฉันประสบปัญหาเดียวกันเมื่อ 2 วันก่อนและวันนี้ฉันสามารถแก้ไขได้ดังนี้:

  1. ไปที่เส้นทางนี้C:\Users\user_name\.gradle\wrapper\distsที่user_nameชื่อผู้ใช้ของคุณถ้าคุณเป็นเจ้าของพีซีหรือชื่อ บริษัท ของคุณ

  2. ลบgradle-****-allไฟล์ล่าสุดตั้งแต่อัปเดตล่าสุดของ android studio (เช่น 2.3 หรือเวอร์ชันอื่น)

  3. หาก Android Studio ของคุณเปิดอยู่ให้ปิดแล้วเปิดใหม่ Gradle เวอร์ชันใหม่กว่าจะได้รับการดาวน์โหลดจะใช้เวลาขึ้นอยู่กับความเร็วอินเทอร์เน็ตของคุณขนาดการดาวน์โหลดอยู่ที่ประมาณ 150-200 MB ก่อนที่จะแยกดังนั้นหาก android studio ใช้เวลารีเฟรชนานเพียงแค่รู้ว่ากำลังดาวน์โหลด (หากต้องการตรวจสอบความคืบหน้าในการดาวน์โหลดให้คลิกขวาที่โฟลเดอร์ gradle ใหม่ไปที่คุณสมบัติและตรวจสอบขนาด)


36

ค้นหา 'gradle-wrapper.properties' ในรูทโปรเจ็กต์

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

เปลี่ยน "https" เป็น "http"


ฉันไม่ได้ลองดาวน์โหลด gradle ด้วยตนเอง แต่ได้ลองลบโฟลเดอร์ 'dists' แล้ว แต่ใช้งานไม่ได้ คำตอบนี้ใช้ได้กับฉัน
Win Myo Htet

ฉันทำอย่างนั้น แต่ตอนนี้ฉันได้รับข้อผิดพลาด 403
xjcl

18

มีขั้นตอนต่อไปนี้เพื่อแก้ปัญหานี้


1. ไปที่C: \ Users \ ชื่อผู้ใช้ ~ ~ \
2. ลบไฟล์และโฟลเดอร์ทั้งหมดออกจากโฟลเดอร์ dists
3. หากเปิด Android Studio แล้วให้ปิดโปรเจ็กต์ที่เปิดอยู่แล้วเปิดโปรเจ็กต์ใหม่ Android Studio จะดาวน์โหลดไฟล์ที่จำเป็นทั้งหมดโดยอัตโนมัติ


(เวลาที่ต้องการเป็นไปตามความเร็วอินเทอร์เน็ตของคุณ (ขนาดการดาวน์โหลดจะอยู่ที่ประมาณ "89 MB") หากต้องการดูความคืบหน้าของการดาวน์โหลดให้ไปที่โฟลเดอร์C: \ Users \ ~ User Name ~ \ .gradle \ wrapper \ distsและตรวจสอบ ขนาดของโฟลเดอร์)


10

เพียงแค่ลบและดาวน์โหลด wrapper gradle ใหม่

หน้าแรกของMac / .gradle / wrapper / dists /

ลบรุ่น gradle และซิงค์ gradle ในโครงการและเรียกใช้โครงการ

ป้อนคำอธิบายภาพที่นี่


5

**** วิธีแก้ปัญหาต่อไปนี้ใช้งานได้สำหรับฉัน **** ลบไฟล์ทั้งหมดด้วยตนเองจาก C: \ Users \ Admin.gradle \ wrapper \ dists \

โดยที่ผู้ดูแลระบบคือชื่อผู้ใช้ของฉัน


5

ไปที่บานหน้าต่างโครงการ> Android> Gradle Scripts และเปิดไฟล์ "graddle-wrapper.properties" ตรวจสอบ URL การแจกจ่าย:

ป้อนคำอธิบายภาพที่นี่

ไปที่โฟลเดอร์ ".gradle / wrapper / dists /" ของคุณและลบไฟล์นั้นออกให้ฉันมันคือ "gradle-5.6.4-all"

ป้อนคำอธิบายภาพที่นี่

จากนั้นกลับไปที่ android studio แล้วคลิกที่ File> Sync Project with Gradle Files และจะเริ่มดาวน์โหลดอีกครั้ง

ป้อนคำอธิบายภาพที่นี่


นี่ควรเป็นคำตอบที่เลือกเนื่องจากแก้ปัญหาความน่าจะเป็นกับโครงการอื่น ๆ ทั้งหมดที่ใช้ gradle รุ่นเดียวกัน
davejoem

นี่คือคำตอบที่ดีที่สุด เพียงแค่ทำตามมัน
KofiYah

3

1. ไปที่ "/Users/****/.gradle/wrapper/dists/gradle- . -all / *****"

2. ลบไฟล์ "gradle- . -all.zip.lck"

3. ยกเลิกการตรวจสอบแคชและรีสตาร์ท


1

นี่เป็นทางออกที่ดีที่สุดสำหรับฉันเพียงทำตามเส้นทางนี้ C: \ Users \ yourusername.gradle \ wrapper \ dists จากนั้นลบไฟล์ทั้งหมดในโฟลเดอร์นี้ ปิดสตูดิโอ Android ของคุณและรีสตาร์ทและจะดาวน์โหลดไฟล์ gradle ที่อัปเดตโดยอัตโนมัติ


1

ฉันกำลังอัปเกรด gradle จาก 4.1 เป็น 4.10 และการเชื่อมต่ออินเทอร์เน็ตของฉันหมดเวลา

ดังนั้นฉันจึงแก้ไขปัญหานี้โดยการลบโฟลเดอร์ "gradle-4.10-all" ใน. gradle / wrapper / dists


1

ฉันได้รับคำแนะนำจาก @Mikel Yang ฉันพบว่าแทนที่จะลบโฟลเดอร์ ~ / .gradle / wrapper / dists / (ซึ่งจะหมายถึงการดาวน์โหลดไฟล์ gradle สำหรับแอพต่างๆบน Android Studio ของฉัน) ฉันตัดสินใจเปลี่ยน gradle wrapper.properties ไปยังgradle ล่าสุด --all.zip ดังนั้น

Find 'gradle-wrapper.properties' in root project

distributionUrl=https\://services.gradle.org/distributions/gradle-{lastest}-all.zip

วิธีนี้ฉันจะได้รับการบันทึกข้อมูลและเวลา


1

คุณไม่จำเป็นต้องทำความสะอาดไฟล์ทั้งหมดใน C:\Users\ ~User Name~ \.gradle\wrapper\distsdir และดาวน์โหลดทั้งหมดอีกครั้ง

แต่คุณสามารถลบโฟลเดอร์ของเวอร์ชัน gradle ที่คุณดาวน์โหลดไม่สำเร็จ ในกรณีของฉันมันคือ gradle-4.4-all ดังนั้นฉันจึงเพิ่งลบโฟลเดอร์นั้นและ android studio จะดาวน์โหลด gradle-4.4 ทั้งหมดให้ฉัน

ในกรณีที่คุณไม่ทราบเวอร์ชันที่คุณกำลังดาวน์โหลด:

เพียงไปที่เมนูความช่วยเหลือ> แสดงบันทึกใน explorer

คุณจะพบกับ idea.log เปิดและค้นหา

Could not install Gradle distribution from 'https://services.gradle.org/distribution`

เมื่อคุณพบแล้วคุณจะพบเวอร์ชัน gradle ที่คุณไม่สามารถดาวน์โหลดได้


1

สิ่งนี้เกิดขึ้นกับฉันเนื่องจากไฟล์ zip การแจกจ่าย gradle ที่ดาวน์โหลดมาบางส่วน

  • ในการแก้ไขให้ไปที่เส้นทางด้านล่าง

    "C: /Users/your_username/.gradle"

    หรือ

    ดึงเส้นทาง gradle ของคุณจาก File-> Settings-> Build, Exectution, Deployment-> Gradle -> gradle service directory path

  • ลบโฟลเดอร์ gradle การแจกจ่ายที่ดาวน์โหลดมาบางส่วน

  • ไปที่ Studio (ไม่จำเป็นต้องรีสตาร์ท) และทำการซิงโครไนซ์แบบค่อยเป็นค่อยไป

1

ไปที่ "ไฟล์" ใน android studio คลิก "ทำให้แคชไม่ถูกต้อง / รีสตาร์ท" และ "ไม่ถูกต้องและรีสตาร์ท"

ที่ยังใช้งานได้


1

ผมประสบปัญหาในความเข้าใจของฉันมันเป็นเพราะมีส่วนผสมที่ไม่ถูกต้องของรุ่น Android สตูดิโอและ Gradle ปลั๊กอิน ฉันใช้ Gradle เวอร์ชัน 5.4.1 และ Studio เวอร์ชัน 3.4 ดังนั้นฉันจึงอัปเดต Android studio เป็น 3.5 และปัญหาได้รับการแก้ไขแล้ว


0

คุณสามารถลบ gradle- ล่าสุดได้ - โฟลเดอร์ทั้งหมดจากเส้นทางด้านล่าง Windows: C: \ Users \ your-username.gradle \ wrapper \ dists

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