ปัญหายอดนิยมสำหรับนักพัฒนามือใหม่ที่มักจะต้องเจอกันในตอนแรกที่ติดตั้ง Android Studio เสร็จ แล้วสร้างโปรเจคขึ้นมาเพื่อลอง Build ลงเครื่องดู แต่กลับพบว่ามัน Build ไม่ผ่านซะที!! ซึ่งเจ้าของบล็อกก็พบว่าเป็นกันบ่อยพอสมควร ก็เลยเขียนบทความนี้ไว้เพื่อบอกแนวทางในการแก้ไขซะเลย
เมื่อ Gradle เจ้าปัญหาบอกว่า Build ไม่ผ่าน
ปัญหาที่เกิดขึ้นจะมีใจความประมาณนี้Execution failed for task ':app:compileDebugJavaWithJavac'.
> Could not expand ZIP '/Users/username/Library/Android/sdk/extras/android/m2repository/com/android/support/support-annotations/26.0.0-alpha1/support-annotations-26.0.0-alpha1.jar'
หรือแบบนี้
Execution failed for task ':app:prepareComAndroidSupportAnimatedVectorDrawable2600Alpha1Library'.
> Unable to unzip '/Users/username/Library/Android/sdk/extras/android/m2repository/com/android/support/animated-vector-drawable/26.0.0-alpha1/animated-vector-drawable-26.0.0-alpha1.aar' to '/Users/username/.android/build-cache/7cd95cde4e9743d9e6a78b9dbe7791/output'
ถึงแม้รายละเอียดจะแตกต่างกันเล็กน้อย แต่ถ้าอ่านคร่าวๆก็จะได้ใจความว่า Gradle ไม่สามารถ Unzip ไฟล์ของ Android Support Library ได้นั่นเอง
ซึ่งวิธีแก้ไขนั้นไม่มีรูปแบบตายตัว อ้าว!? ไหงงั้นล่ะ?
เพราะ Environment บนคอมพิวเตอร์ของแต่ละคนนั้นแตกต่างกันออกไป
นั่นล่ะครับ สาเหตุหลักของปัญหานี้ จากที่เจ้าของบล็อกได้ลองช่วยแก้ปัญหา ก็พบว่าสาเหตุหลักๆคือคอมพิวเตอร์ของแต่ละคนมีการตั้งค่าแตกต่างกันออกไป ดังนั้นการแก้ไขปัญหานี้จึงต้องไล่เช็คทีละส่วนเอาเอง ว่าจริงๆแล้วเครื่องที่มีปัญหานั้นเป็นเพราะอะไรกันแน่กำหนด Permission บนเครื่องไม่ถูกต้อง?
ในแต่ละ OS จะมีการกำหนด Permission ในการเข้าถึงไฟล์ในเครื่องแตกต่างกันออกไป โดยจะต้องเช็คทั้งหมด 3 อย่างด้วยกันAndroid Studio
ถ้าเป็น Windows ควรจะเปิดแบบ Run as Administrator ส่วน OS อื่นไม่น่าจะมีปัญหาอะไร ขอแค่ติดตั้งลงในเครื่องให้ถูกต้องก็พอ (เคยเจอคนที่เปิดโปรแกรมจากไฟล์ .dmg โดยตรง แทนที่จะลากลงเครื่องก่อน)Android SDK
จะต้องอยู่ในพื้นที่ที่สามารถ Read และ Write ได้ปกติ ถ้าเป็น Android SDK ที่ติดตั้งจาก Android Studio โดยอัตโนมัติ ก็ไม่น่าจะมีปัญหาอะไร เว้นแต่ว่าไปดาวน์โหลดแยกแล้วเก็บไว้ในพื้นที่ที่ติดเรื่อง PermissionProject Directory
ไฟล์โปรเจคจะต้องอยู่ในพื้นที่ที่สามารถ Read และ Write ได้ปกติ อย่าเผลอสร้างไว้ใน Directory แปลกๆเชียวล่ะDependency ที่ดาวน์โหลดมา ไม่สมบูรณ์
ปัญหานี้ไม่น่าจะเกิดขึ้นบ่อยซักเท่าไร เพราะเราอยู่ในโลกที่อินเตอร์เน็ตเร็วและมีปัญหาน้อยแล้ว แถมการดาวน์โหลด Dependency ก็ดาวน์โหลดจาก Google โดยตรงจึงน่าจะรับประกันความสมบูรณ์ได้อยู่แล้ว ดังนั้นการโหลดแล้วไฟล์เสียจึงเป็นไปได้น้อยมาก แต่จะลองเช็คดูซักหน่อยก็ไม่เสียหายเนอะทดสอบง่ายๆด้วยการลบ Android Support Repository ที่อยู่ใน Android SDK Manager ออก แล้วติดตั้งใหม่ซะ
เปลี่ยนภาษาในเครื่องให้เป็นภาษาอังกฤษซะ
อาจจะฟังดูตลก แต่นี่คือสาเหตุหนึ่งที่ทำให้เจอปัญหานี้ได้ เพราะว่าเครื่องที่ใช้อยู่นั้นเลือกเป็นภาษาไทยไว้
ดังนั้นไม่ว่าจะเป็น OS ไหนก็ตาม แนะนำให้ลองเปลี่ยนภาษาเครื่องให้เป็นภาษาอังกฤษแล้ว Restart เครื่องดูครับ รับรองว่าแก้ปัญหานี้ได้จริงๆ