ขณะนี้อินสแตนซ์ Gradle อื่นใช้อยู่


119

ฉันยังใหม่กับระบบสร้าง Gradle ฉันต้องการทำหน้าที่พื้นฐานบางอย่างกับมัน ฉันกำลังเรียกใช้ / สร้างมันในบรรทัดคำสั่ง ผมหมายคู่มือผู้ใช้ และทำงานง่ายๆ

เมื่อฉันเริ่มเรียกใช้งานง่ายๆมันถูกสร้างสำเร็จ แต่หลังจากที่บางครั้งก็มีการแสดงและจะกลายเป็น"It is currently in use by another Gradle instance" BUILD FAILEDฉันใช้เทอร์มินัลเพื่อรันงาน ตอนนั้นไม่ได้วิ่งอะไร

หากฉันปิดเทอร์มินัลที่สร้างข้อผิดพลาดปัญหานี้จะได้รับการแก้ไข แต่ฉันรู้ว่ามันไม่ใช่ทางออกสำหรับสิ่งนั้น

เหตุใดจึงเกิดข้อผิดพลาดนี้บ่อยครั้ง

ต้องแก้ยังไง?

และโปรดอ้างอิงลิงค์เพื่อปรับปรุงความรู้ของฉันเกี่ยวกับระบบ Gradle Build ใน Android


4
คุณใช้ gradle ในโหมด daemonโดยบังเอิญหรือไม่? gradle --stopคุณสามารถตรวจสอบโดยใช้คำสั่ง คุณจะคาดหวังที่จะได้รับการส่งออกทั้งภูตไม่มี Gradle กำลังทำงานหรือGradle ภูตหยุด
topr

@topr ฉันไม่ได้ใช้โหมดภูต ..
Dhasneem

3
วิธีแก้ไข: (นั่นใช้ได้สำหรับฉัน) ขั้นตอนที่ 1. เริ่มตัวจัดการงานค้นหา / ตรวจสอบว่าไม่มี java.exe สองอินสแตนซ์ ขั้นตอนที่ 2. เพียงแค่ฆ่า java.exe ตัวใดตัวหนึ่งหรือทั้งสองอย่างแล้วเริ่ม Android Studio อีกครั้ง Enjoy
Lakhwinder Singh Dhillon

คำตอบ:


306

ลบไฟล์ล็อคในแคช gradle โดยดำเนินการดังนี้:

find ~/.gradle -type f -name "*.lock" -delete

12
ขอบคุณ! มันใช้งานได้หลังจากที่ฉันวิ่งเพิ่มเติม find /path-to-project-dir/.gradle -type f -name "*.lock" | while read f; do rm $f; done
Tyler

4
วันนี้ฉันกลับมาที่คำถามนี้และคราวนี้ฉันต้องการkill -9กระบวนการนอกเหนือจากการลบไฟล์ล็อก ข้อความในหัวข้อคำถามตามด้วย PID ทันที: เกิดอะไรขึ้น: หมดเวลารอเพื่อล็อกแคชประวัติงาน (,,,) ขณะนี้อินสแตนซ์ Gradle อื่นใช้อยู่ Owner PID: 4354 PID ของเรา: 9500
Joshua Goldberg

@JoshuaGoldberg คุณตรวจสอบว่ากระบวนการ # 4354 เริ่มต้นก่อนที่จะฆ่ามันอย่างไรและเมื่อไหร่? (ฉันแค่อยากรู้อยากเห็น)
n1ghtm4n4g3r

2
ขอบคุณสำหรับการแบ่งปันคำสั่งนั้นฉันไม่เคยมีปัญหานั้นมาก่อนและหลังจากลบไฟล์ล็อคสำหรับ gradle ฉันสามารถเรียกใช้เซิร์ฟเวอร์ของฉันได้อีกครั้ง สิ่งนี้ควรถูกระบุว่าเป็น "คำตอบที่ดีที่สุด"
Raul Rivero

1
@ shashank-chandak ใน bash shell (Terminal หรือ Cygwin)
n1ghtm4n4g3r

35

บางครั้งวิธีที่รวดเร็วก็เกิดขึ้นในข้อตกลงที่ไม่หรูหราเราไปที่นั่น:

ค้นหา # อันดับแรกของกระบวนการ gradle ทั้งหมดที่ทำงานบน

ps -A | grep gradle

หลังจากนั้นรับ IDs ฆ่าพวกเขาทีละคน

sudo kill -9 <process ID>

ตอนนี้คุณสบายดี ;-)


30

ฉันติดอยู่กับข้อผิดพลาดนี้และต้องลบเนื้อหาใน.gradle/caches/โฟลเดอร์ของผู้ใช้และเนื้อหาใน.gradle/โฟลเดอร์ของโครงการเพื่อดำเนินการต่ออีกครั้ง

ไม่แน่ใจว่าเกิดจากอะไรอาจเป็นงานสร้างที่ล้มเหลวซึ่งทำให้ไฟล์เหล่านี้อยู่ในสถานะล็อก


ปัญหานี้มีการระบุไว้ที่นี่ - issue.gradle.org/browse/GRADLE-2795 - ในขณะที่มีข้อบกพร่องของ gradle อยู่ฉันคิดว่านี่เป็นทางออกที่ดีที่สุด
Joshua Goldberg

3
อันที่จริงฉันประสบความสำเร็จเพียงแค่ลบ ~ / .gradle / caches / * โดยไม่ต้องแตะไดเร็กทอรี. gradle ของโปรเจ็กต์
Joshua Goldberg

โชคดีสำหรับคุณ @JoshuaGoldberg แต่ในกรณีของฉันฉันไม่สามารถลบโฟลเดอร์ chaches ได้ สิ่งที่อาจเป็นปัญหา?
นอกชายฝั่ง

ฉันลบ. gradle / caches / ** และใช้งานได้อีกครั้ง ที่แปลกคือฉันใช้เฉพาะ. / gradlew ซึ่งไม่ควรใช้ local gradle version ใช่ไหม?
Ben Groot

1
@BenGroot AFAIK gradle daemons ทั้งหมดที่มี gradle เวอร์ชันเดียวกันจะแชร์แคชเดียวกัน (หากไม่ได้บังคับอย่างชัดเจน) ไม่ว่าจะเริ่มจากที่ใดก็ตาม
ubuntudroid

12

สำหรับเครื่อง Windows:

เปิดตัวจัดการงาน (Ctrl-Alt-Delete และตรวจสอบกระบวนการ)

-> หากคุณเรียกใช้สตูดิโอ android สองอินสแตนซ์ให้ปิด One (End Task)

-> จากนั้นปิดไบนารีแพลตฟอร์ม OpenJDK

-> ซิงค์ Gradle บน AndroidStudio แล้วและจะใช้งานได้ทันที


สิ่งนี้ได้ผลสำหรับฉัน แต่ในกรณีของฉันฉันมี JDK แบบเปิดอยู่สองอินสแตนซ์และหนึ่ง Android Studio
Rowan Gontier

7

สิ่งนี้อาจเกิดขึ้นเนื่องจากมี Android Studio มากกว่าหนึ่งครั้ง


ตกลงการเปิดสตูดิโอ Android หลายหน้าต่างและการซิงค์พร้อมกันทำให้เกิดปัญหานี้เช่นกัน
mochadwi

6

เพียงแค่ฆ่ากระบวนการ java.exe เพื่อแก้ไขปัญหาของฉัน

- แก้ไข -

หากไม่ได้รับการแก้ไข:

  • ฆ่า OpenJdkPlatform

หากไม่ได้รับการแก้ไข:

  • ลบไฟล์ ".lock" ทั้งหมดออกจากไดเร็กทอรี. gradleและไดเร็กทอรีย่อย (windows: C: \ Users \ Username \ .gradle)

หากไม่ได้รับการแก้ไข:

  • เปลี่ยนชื่อหรือลบไดเร็กทอรี. gradleแล้วลองอีกครั้ง

หลังจากอ่านคำตอบของคุณฉันลบไดเร็กทอรี. gradle และตอนนี้หลังจากคอมไพล์ใหม่แอพก็เสียโดยสิ้นเชิง
ปีศาจแดง

หลังจากอ่านคำตอบของคุณฉันลบไดเร็กทอรี. gradle และตอนนี้หลังจากคอมไพล์ใหม่แอพก็เสียโดยสิ้นเชิง ขนาดตัวอักษรเพิ่มขึ้นช่องว่างเพิ่มขึ้นได้รับข้อผิดพลาดในการตรวจสอบความถูกต้องแบบสุ่ม ตอนนี้ทำอะไรได้บ้าง?
ปีศาจแดง

1
แน่ใจไหมว่าเพิ่งลบไดเรกทอรี. gradle การลบ. gradle จะต้องไม่มีผลข้างเคียงใด ๆ กับโค้ดแอปของคุณ มันเป็นเพียงการไล่ระดับแคชและหากคุณรวบรวมแอปของคุณอีกครั้ง gradle จะดาวน์โหลดไฟล์ที่จำเป็น ลองสร้างใหม่ทั้งหมด
Ahmad Dehnavi

3

ข้อความความล้มเหลวของ Gradle นั้นมักจะตามด้วยรหัสกระบวนการที่เกี่ยวข้องดังนั้นจึงเป็นเช่นนั้น

Gradle sync failed: Timeout waiting to lock daemon addresses registry [...].
It is currently in use by another Gradle instance.

Owner PID: 1234
Our PID: 5678
Owner Operation: ...

ในการปลดล็อกเพียงแค่ฆ่ากระบวนการเจ้าของ:

sudo kill -9 1234

2

สำหรับระบบปฏิบัติการ Windows:

ฉันคิดว่ามันเกี่ยวข้องกับไฟล์ล็อคดังนั้นฉันจึงไปที่. gradle \ buildOutputCleanup ในโฟลเดอร์โครงการและลบไฟล์ cache.properties.lock และสร้างโครงการใหม่ มันทำงานได้อย่างสมบูรณ์แบบ


2

มีปัญหาเดียวกันบน Mac ข้อใดข้างต้นไม่ได้ผลสำหรับฉัน สิ่งที่ได้ผลคือการเปิดตัวตรวจสอบกิจกรรมและปิดกระบวนการจาวาที่กำลังทำงานอยู่ ฉันยังสังเกตเห็นว่ามีการสร้างไฟล์. hprof ซึ่งฉันลบไปแล้ว หลังจากนั้นฉันก็ดำเนินโครงการของฉันและมันก็ได้ผล


2

กดCTRL + SHIFT + ESCเพื่อเปิดตัวจัดการงานตอนนี้ค้นหาOpenJDKและฆ่ามันไปที่ข้อผิดพลาดที่ชี้ไปที่ชอบ

D:\.gradle\daemon\4.10.1\registry.bin.lock

ลบไฟล์และทำการ resynce เท่านี้ก็เรียบร้อย


2

ฉันอาจจะสาย แต่ดูเหมือนวิธีแก้ปัญหาที่รวดเร็วและมีประสิทธิภาพ

ทำตามขั้นตอนต่อไปนี้

  1. ดำเนินการ ps -ef | grep gradle
  2. เปิดเทอร์มินัลและย้ายไปที่~ / .gradle / แคชพา ธ
  3. ดำเนินการ find ~/.gradle -type f -name "*.lock" | while read f; do rm $f; done

มันจบแล้ว.


2

สำหรับเครื่อง MAC

โปรดเปิด "การตรวจสอบกิจกรรม" และเลือกตัวเลือก "หน่วยความจำ" และบังคับให้ Android studio เงียบและกระบวนการ java อื่น ๆ ที่ทำงานอยู่จะช่วยแก้ปัญหานี้


1
ใช้ได้ผลกับฉันเมื่อใช้ intelliJ บน Mac
Karim Sonbol

1

ฉันมีปัญหาเดียวกันกับ mac:

โปรดระวังว่าโครงการของคุณไม่ได้อยู่ในฮาร์ดดิสก์ภายนอก ตำแหน่งของโปรเจ็กต์ของคุณต้องอยู่ในฮาร์ดดิสก์พร้อมกับระบบปฏิบัติการของคุณ

(สร้างแอพ Ionic)


ดูเหมือนว่าในกรณีของฉันปัญหานี้ก็เช่นกัน วันอื่น ๆ ฉันโอนโครงการไปยังไดรฟ์ภายนอก
DmitryKanunnikoff

1

ฉันประสบปัญหาเดียวกันในโครงการของฉัน แต่ฉันแก้ไขปัญหานี้โดยทำให้โปรเจ็กต์ไม่ถูกต้องดังนั้นทำตามขั้นตอนเหล่านี้ในไฟล์สตูดิโอ android -> แคชไม่ถูกต้อง / รีสตาร์ท ...


0

ฉันไม่จำเป็นต้องลบไฟล์ใด ๆ เพื่อแก้ไขข้อผิดพลาดนี้

ปัญหาที่ฉันมีคืออินสแตนซ์ Gradle หยุดทำงานและมีรายการพรอมต์คำสั่ง 6 รายการในรายการงานของฉันที่ถูกสร้างโดย Java

การบังคับปิดอินสแตนซ์พรอมต์คำสั่งทำให้ฉันทำงานต่อได้ตามปกติ


0

งานสำหรับฉันสำหรับปัญหา: -

"ข้อผิดพลาด: หมดเวลารอเพื่อล็อกขวดโหลขณะนี้อินสแตนซ์ Gradle อื่นใช้งานอยู่เจ้าของ PID: 6896 PID ของเรา: 5048 การดำเนินการของเจ้าของ: การดำเนินการของเรา: ล็อก"

วิธีการแก้:-

  1. ปิด Android Studio และเปิดตัวจัดการงานและสิ้นสุดกระบวนการ java.exe
  2. เปิด derectory .... gradle \ caches
  3. ลบไฟล์ jar2.lock
  4. เปิด Android Studion และทำความสะอาดโครงการ

0

ลองใช้คำตอบทั้งหมดนี้รวมถึงกระบวนการ kill java ลบ. gradle ใน HOME_DIR และในโครงการ dir รีสตาร์ท Android Studio และแม้แต่รีสตาร์ท OS

มันเริ่มทำงานได้ตามปกติหลังจากที่ฉันเปิดตัว gradle sync เท่านั้น


0

วิธีแก้ปัญหาที่ง่ายมาก:

ไม่จำเป็นต้องฆ่าAndroid Studioเพียงแค่ฆ่าOpenJdkPlatformกระบวนการจากนั้นลบ.lockไฟล์ที่อยู่ใน:

rootProject/.gradle/<version>/taskHistory

0

ในขณะที่ฆ่ากระบวนการและ / หรือการเอาผลงานแฟ้มล็อค, Gradle ควรจะสามารถจัดการกับปัญหานี้ได้ด้วยตัวเอง, การแก้ปัญหาอย่างถาวร รายงานปัญหานี้ให้คำแนะนำในการแก้ปัญหา: Gradle ไม่สามารถสื่อสารกับบริการ gradle ได้

ดูไฟร์วอลล์เครือข่ายท้องถิ่นของคุณ ในกรณีของฉัน

  • ช่วยให้การจราจรขาออกจาก 127.0.0.1 ถึง 127.0.0.1

    sudo iptables -A OUTPUT -p udp -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
    
  • อนุญาตให้มีการรับส่งข้อมูลจาก 127.0.0.1

    sudo iptables -A INPUT -s 127.0.0.1 -p udp -j ACCEPT
    

แก้ไขปัญหา การอภิปรายของปัญหาที่คล้ายกันที่ GitHub

และโปรดอ้างอิงลิงค์เพื่อปรับปรุงความรู้ของฉันเกี่ยวกับระบบ Gradle Build ใน Android

แน่นอน Udacity gradleถ้าคุณมีเวลาบางส่วน


0

เปิดเทอร์มินัลและย้ายไปยังเส้นทางโครงการจากนั้นรันขึ้นอยู่กับระบบปฏิบัติการ: gradlew clean หรือ. /gradlew clean


0

ฉันกำลังเผชิญกับปัญหาเดียวกัน แต่ฉันแก้ไขได้โดยการรีสตาร์ทสตูดิโอ Android ของฉัน ฉันใช้ OneDrive เพื่อบันทึกโครงการของฉัน


0

ฉันมีปัญหาเดียวกันและฉันทำสองขั้นตอนและมันก็แก้ไขได้

  1. JDK ของฉันไม่ได้ติดตั้งบน Mac (ฉันลืมติดตั้ง) ฉันติดตั้งแล้ว
  2. ฉันลบรายการทั้งหมดออกจากโฟลเดอร์แคชที่อยู่ในเส้นทางนี้ /Users/icon_developer/.gradle/ และสร้างโครงการใหม่ มันได้ผล!

0

ทุกคนในที่สุดฉันก็มีทางออกที่สมบูรณ์

Error :- Timeout Gradle cashe its running in other gradle


distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

Please add this Line in Wrapper.Propertis and Sync now
After Sync the project When 
Invalidthcast\restart   to get the requesting componants

0

ฉันติดอยู่กับสิ่งเดิม ๆ มากเกินไป แต่มันถูกจัดเรียงในไม่ช้า เพียงแค่ลบไฟล์:

D:\.gradle\daemon\6.1.1\registry.bin.lock

ฉันได้จบ OpenJDK จากตัวจัดการงาน Idk ช่วยได้หรือไม่ แต่ทั้งสองคนแก้ปัญหาได้


0

ในกรณีของฉันเพียงแค่ปิด Android Studio แล้วเปิดขึ้นมาใหม่ปัญหาจะได้รับการแก้ไข


0

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

  1. ไปที่ Task Manager
  2. ค้นหา Owner PID ใน "รายละเอียด" ของตัวจัดการงาน
  3. จบงาน

0

สำหรับฉันบน Mac ให้เลือกFileด้านบนจากนั้นเลือกInvalidate Caches / Restart...ทำตามเคล็ดลับ

วิธีง่ายๆที่ดีถ้ามันเหมาะกับคุณด้วย!

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