เชื่อว่าผู้ที่หลงเข้ามาอ่านหลายๆคนต้องพยายามจะเปลี่ยน Package Name ในโปรเจคแอนดรอยด์บน Android Studio กัน และพบว่าทำไมมันยุ่งยากเหลือเกินนะ เปลี่ยนไปเปลี่ยนมาเกิดเน่าขึ้นมาอีกก็ซวยไป
เจ้าของบล็อกจึงขอแนะนำวิธีที่เจ้าของบล็อกใช้อยู่ประจำนะครับ
ยกตัวอย่างเช่น เจ้าของบล็อกต้องการเปลี่ยนชื่อ Package Name จาก com.akexorcist.bookreader
มาเป็น com.sleepingforless.bookreader
แทน
![](https://akexorcist.dev/content/images/2020/12/rename_package_in_android_studio-001-2.jpg)
แนะนำให้เปิด Project Explorer แบบ Project นะ จะได้ดูสะดวกกว่า
ปัญหาที่เกิดขึ้น
อยากจะเปลี่ยน Package Name ก็เลยกด Rename ที่ Package ที่ต้องการ แต่พอเลือก Refactor > Rename > Rename Directory
หรือ Rename Package
ก็ตาม มันดันขึ้นแค่ Package ชุดหลังให้แก้ไขเท่านั้น
วิธีแก้ไข
ปัญหาเกิดจาก Android Studio กำหนดให้หน้าต่าง Project Explorer ไปแสดง Package แบบ Compact Empty Middle Package เอาไว้ มันก็เลยแสดง Package เป็นย่อๆไว้ให้
![](https://akexorcist.dev/content/images/2020/12/rename_package_in_android_studio-002-1.jpg)
ซึ่งถ้าปิดดูก็จะเห็นว่า Package แสดงซ้อนกันเป็นชั้นๆแล้ว
![](https://akexorcist.dev/content/images/2020/12/rename_package_in_android_studio-003-1.jpg)
เพียงเท่านี้ผู้ที่หลงเข้ามาอ่านก็สามารถเข้าไปแก้ไข Package Name ในแต่ละส่วนได้แล้ว โดยคลิกขวาเพื่อเลือก Refactor > Rename
แล้วเลือก Rename Package
ได้เลย
![](https://akexorcist.dev/content/images/2020/12/rename_package_in_android_studio-004-1.png)
โดย Android Studio จะไล่เช็คในโปรเจคให้ว่ามีตรงจุดไหนที่จะต้องถูกเปลี่ยนชื่อบ้าง เพื่อให้นักพัฒนาสามารถตรวจสอบให้แน่นอนก่อน หรือถ้าไม่ติดปัญหาอะไรก็จะเปลี่ยนชื่อให้ทันที
และเมื่อชื่อถูกเปลี่ยนแล้ว ก็จะเห็นว่าแม้กระทั่งใน androidTest
และใน test
ก็ถูกเปลี่ยนตามด้วยเช่นกัน
![](https://akexorcist.dev/content/images/2020/12/rename_package_in_android_studio-005-1.jpg)
แต่อย่าลืมแก้ไข Application ID ใน build.gradle
ด้วย เพราะตรงนี้จะไม่ถูกเปลี่ยนให้โดยอัตโนมัติ จึงทำให้ Gradle ยัง Build ออกมาเป็น Package Name เดิมอยู่
![](https://akexorcist.dev/content/images/2020/12/rename_package_in_android_studio-006.jpg)
เมื่อเปลี่ยนเป็น Application ID ที่ต้องการแล้ว ก็ให้ Sync Gradle ใหม่ และเพียงเท่านี้โปรเจคของผู้ที่หลงเข้ามาอ่านก็จะเปลี่ยนเป็น Package Name อันใหม่ตามที่ต้องการแล้วจ้า