เชื่อว่าผู้ที่หลงเข้ามาอ่านหลายๆคนต้องพยายามจะเปลี่ยน Package Name ในโปรเจคแอนดรอยด์บน Android Studio กัน และพบว่าทำไมมันยุ่งยากเหลือเกินนะ เปลี่ยนไปเปลี่ยนมาเกิดเน่าขึ้นมาอีกก็ซวยไป

เจ้าของบล็อกจึงขอแนะนำวิธีที่เจ้าของบล็อกใช้อยู่ประจำนะครับ

ยกตัวอย่างเป็นโปรเจคตัวนึงที่เจ้าของบล็อกโหลดมาจากในอินเตอร์เน็ตละกันเนอะ เป็นโปรเจคตัวอย่างของ Remind ในภาพตัวอย่างจะเห็นว่า Package Name เดิมคือ com.remind101.archexample

แนะนำให้เปิด Project Explorer แบบ Project นะ จะได้ดูสะดวกกว่า

ปัญหาที่เกิดขึ้น

อยากจะเปลี่ยน Package Name ก็เลยกด Rename ที่ Package ที่ต้องการ แต่พอเลือก Refactor > Rename > Rename Directory หรือ Rename Package ก็ตาม มันดันขึ้นแค่ Package ชุดหลังให้แก้ไขเท่านั้น

วิธีแก้ไข

ปัญหาเกิดจาก Android Studio กำหนดให้หน้าต่าง Project Explorer ไปแสดง Package แบบ Compact Empty Middle Package เอาไว้ มันก็เลยแสดง Package เป็นย่อๆไว้ให้

ซึ่งถ้าลองไปปิดดูก็จะเห็นว่า Package แสดงซ้อนกันเป็นชั้นๆแล้ว

เพียงเท่านี้ผู้ที่หลงเข้ามาอ่านก็สามารถเข้าไปแก้ไข Package Name ในแต่ละส่วนได้แล้ว โดยคลิกขวาแล้วเลือก Refactor > Rename > Rename Package ได้เลย

จากตัวอย่างของเจ้าของบล็อก จะต้องแก้ทั้งหมด 2 จุด คือแก้จาก remind101 เป็น remind และแก้จาก archexample เป็น sampleapp

โดย Android Studio จะมีการเช็คให้ว่าตรงไหนของโปรเจคที่มีผลกระทบบ้าง ก็กด Do Refactor ได้เลย

หลังจากแก้ไขแล้วจะเห็นว่า androidTest จะแก้ไขให้ด้วยเลย แต่ว่า test จะไม่ได้แก้ไขตามให้ ก็ให้ไป Rename Directory เอาเอง

และอย่าลืมแก้ไข Application ID ใน build.gradle ด้วย เพราะไม่งั้นหลังจาก Build ออกมาแล้วมันจะยังเป็น Package Name ของเก่าอยู่

เมื่อเสร็จแล้วก็ลอง Sync Gradle ใหม่ดู เพื่อให้มัน Build จนเสร็จ เพียงเท่านี้โปรเจคแอนดรอยด์ของผู้ที่หลงเข้ามาอ่านก็เปลี่ยนเป็น Package Name อันใหม่แล้วจ้า