ข้อผิดพลาด Gradle: อนุญาตให้เข้าถึงการเขียนจากเธรดการจัดส่งเหตุการณ์ใน Android Studio เท่านั้น


120

หลังจากอัปเดต Android Studio เป็นเวอร์ชัน 2.2 (บน Windows 10) และในเช้าวันรุ่งขึ้นฉันได้รับข้อผิดพลาดดังกล่าวเมื่อ gradle สร้างขึ้นในโครงการใด ๆ :

อนุญาตให้เข้าถึงการเขียนจากเธรดการจัดส่งเหตุการณ์เท่านั้น

แม้ว่าคำสั่ง gradlew -build จะทำงานและเสร็จสมบูรณ์ ฉันลองใช้ชุดซ่อม WTF ของ Android dev ทั่วไป: สร้างใหม่ทั้งหมดแคชไม่ถูกต้องลบโฟลเดอร์สร้างลบโฟลเดอร์. gradle ลองการตั้งค่า gradle ที่แตกต่างกันแม้จะติดตั้ง Android Studio ใหม่และไม่มีอะไรช่วย

ฉันสร้างคำถามนี้เพื่อแบ่งปันประสบการณ์กับชุมชนเท่านั้นเพราะฉันเสียเวลาไปสองชั่วโมง


วาง SDK ใน Andoid Studio เท่านั้น
Ja Mal Ch

คำตอบ:


413

ดังนั้นปัญหาจึงสรุปได้ว่า Android Studio ขัดแย้งกับเวอร์ชัน JDK ที่ติดตั้งของฉันดังนั้นจึงได้รับการแก้ไขเมื่อฉันตรวจสอบตำแหน่ง JDK (ไฟล์→โครงสร้างโครงการ→ตำแหน่ง SDK) เลือกช่องทำเครื่องหมาย 'ใช้ JDK ฝังตัว' และตั้งค่าตำแหน่ง JDK เป็น 'พา ธ ไปที่ Android Studio "\ Android Studio \ jre


1
ทำงานได้ดีสำหรับฉัน! ขอบคุณมาก!
waseefakhtar

1
ตอบโจทย์เป๊ะ! ทำงานได้ทันที เมื่อฉันคลิกเปิดโครงสร้างโครงการเมื่ออ่านคำตอบนี้กล่องโต้ตอบโครงสร้างโครงการเองก็แสดงข้อความที่ด้านล่างของกล่องโต้ตอบระบุว่า "โปรดเลือกไดเรกทอรี JDK ที่ถูกต้อง" พร้อมด้วยปุ่มนำทางซึ่งเมื่อคลิกไปที่ JDK กล่องข้อความตำแหน่งเช่นกัน ปัจจุบันฉันใช้ Android Studio 3.1.3 บน Ubuntu ขอบคุณ!
sam

11

ปัญหาเกิดขึ้นเมื่อ android studio ขัดแย้งกับเวอร์ชัน jdk ที่ติดตั้งไปที่ (ไฟล์ -> โครงสร้างโครงการ -> ตำแหน่ง SDK) เลือกช่องทำเครื่องหมาย "ใช้ JDK ฝังตัว" และตั้งค่าตำแหน่ง jdk เป็น 'path to android studio' \ Android Studio \ jre :) ง่ายๆ


1

ไม่ได้ผลสำหรับฉันฉันรันคำสั่ง 'gradle clean build' ฉันพบว่ามีข้อขัดแย้งในบรรทัดใน gradle ลบและซิงค์โปรเจ็กต์ ( ดังในรูปนี้ )

ใส่คำอธิบายภาพที่นี่


1
นี่คือสิ่งที่ได้ผลสำหรับฉันสำหรับคำถามนี้อาจช่วยคนอื่นที่มีปัญหาเดียวกันกับฉันสำหรับคำถามเดียวกัน
ซากิ

0

ปัญหาของฉันคือฉันได้ลบ SDK ที่ฉันใช้ขณะล้างพื้นที่ฮาร์ดไดรฟ์

ในการแก้ไขปัญหานี้ขั้นแรกให้ตรวจสอบว่าคุณติดตั้ง SDK ใดไว้หรือติดตั้งในเครื่องมือ> ตัวจัดการ SDK

จากนั้นคุณสามารถเปลี่ยน compileSdkVersion และ targetSdkVersion ใน app build.gradle เป็นเวอร์ชัน sdk ที่ติดตั้งไว้

มิฉะนั้นคุณสามารถติดตั้งสิ่งที่เคยใช้ sdk ใหม่ได้


-1

ใน Android Studio 3.2.1 ให้ไปที่ไฟล์ -> โครงสร้างโครงการ -> ตำแหน่ง SDK และทำเครื่องหมายในช่อง "ใช้ JDK แบบฝัง (แนะนำ)" ใส่คำอธิบายภาพที่นี่

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