คุณจะเปลี่ยนชื่อแพ็คเกจใน IDE Android Studio ใหม่ตาม IntelliJ IDEA ได้อย่างไร
มีการรวมการรีแฟคเตอร์อัตโนมัติหรือไม่?
ฉันต้องการทำการปรับโครงสร้างจำนวนมาก แต่ไม่รู้วิธีการ ฉันทำงานสองปีกับ Eclipse และใน Eclipse เป็นการทำงานด้วยคลิกเดียว
คุณจะเปลี่ยนชื่อแพ็คเกจใน IDE Android Studio ใหม่ตาม IntelliJ IDEA ได้อย่างไร
มีการรวมการรีแฟคเตอร์อัตโนมัติหรือไม่?
ฉันต้องการทำการปรับโครงสร้างจำนวนมาก แต่ไม่รู้วิธีการ ฉันทำงานสองปีกับ Eclipse และใน Eclipse เป็นการทำงานด้วยคลิกเดียว
คำตอบ:
ตัวอย่างเช่นหากคุณต้องการเปลี่ยนcom.example.app
เป็นmy.awesome.game
:
ในบานหน้าต่างโครงการของคุณคลิกที่ไอคอนรูปเฟืองเล็ก ๆ ( )
ยกเลิกการเลือก / ยกเลิกการเลือกCompact Empty Middle Packages
ตัวเลือก
ไดเรกทอรีแพ็คเกจของคุณจะแตกในแต่ละไดเรกทอรี
เลือกแต่ละไดเรกทอรีที่คุณต้องการเปลี่ยนชื่อและ:
Refactor
Rename
Rename Package
แทนการเปลี่ยนชื่อไดเรกทอรีcom
ใน Android Studio อาจมีคำเตือน ในกรณีเช่นนี้ให้เลือก เปลี่ยนชื่อทั้งหมดตอนนี้เปิดไฟล์ Gradle Buildของคุณ( build.gradle
- โดยปกติapp
หรือmobile
) อัปเดตapplicationId
ในdefaultConfig
ชื่อแพคเกจใหม่ของคุณและ Sync Gradle หากยังไม่ได้รับการอัพเดตโดยอัตโนมัติ
คุณอาจต้องเปลี่ยนpackage=
แอตทริบิวต์ในไฟล์ Manifest ของคุณ
ทำความสะอาดและสร้างใหม่
ทำ! อย่างไรก็ตาม Android Studio จำเป็นต้องทำให้กระบวนการนี้ง่ายขึ้นเล็กน้อย
com.example.test
การแล้วลบcom.example
com.example.test
วิธีการที่ดีก็คือประการแรกสร้างแพคเกจใหม่ที่มีชื่อที่ต้องการโดยคลิกขวาที่โฟลเดอร์ Java → ใหม่ → แพคเกจ
จากนั้นเลือกและลากคลาสทั้งหมดของคุณไปยังแพ็คเกจใหม่ Android Studio จะทำการสร้างชื่อแพ็คเกจใหม่ทุกที่
สุดท้ายลบแพ็คเกจเก่า
เสร็จสิ้น
สำคัญมาก:
คุณต้องเปลี่ยนไฟล์AndroidManifest.xmlและbuild.gradleด้วยตนเองเป็นแพ็คเกจใหม่หากคุณใช้วิธีนี้
การเปลี่ยนID แอปพลิเคชัน (ซึ่งตอนนี้ไม่ขึ้นอยู่กับชื่อแพ็คเกจ) สามารถทำได้อย่างง่ายดายในขั้นตอนเดียว คุณไม่ต้องสัมผัส AndroidManifest ทำต่อไปนี้แทน:
หมายเหตุสิ่งนี้จะไม่เปลี่ยนชื่อแพ็คเกจ การแยกชื่อแพ็กเกจและรหัสแอปพลิเคชันมีการอธิบายไว้ที่นี่: http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename
com.example.sample
เป็นcom.example
คำตอบอื่น ๆ ได้
วิธีที่ฉันใช้สำหรับเปลี่ยนชื่อแพคเกจนั้นง่ายมากดังนี้: -
ขั้นตอนที่ 1 : เลือกตัวเลือกโครงการจากเมนูด้านซ้ายของ Android Studio
ขั้นตอนที่ 2 : คลิกขวาบน java และเพิ่มแพ็คเกจใหม่และตั้งชื่อแพ็คเกจที่ต้องการ
ขั้นตอนที่ 3 : ระบุชื่อแพ็กเกจใหม่ให้คุณ
ขั้นตอนที่ 4 : คัดลอกไฟล์ทั้งหมดจากแพ็คเกจเก่าของคุณและวางในแพ็คเกจใหม่
ขั้นตอนที่ 5 : เปลี่ยนชื่อชื่อไฟล์ในไฟล์ Manifest
ขั้นตอนที่ 6 : เปลี่ยนชื่อชื่อแพ็คเกจในไฟล์ build.gradle
ขั้นตอนที่ 7 : จากนั้นคลิกขวาที่แพ็คเกจเก่าแล้วลบมันด้วยข้อมูลทั้งหมดแล้วลบไดเรกทอรีนั้นด้วย
ขั้นตอนที่ 8 : จากนั้นสร้างโครงการของคุณใหม่
ขั้นตอนที่ 9 : จากนั้นคุณจะพบข้อผิดพลาดของการนำเข้าชื่อแพคเกจเก่า ในโครงการของคุณ เลือกชื่อแพ็กเกจเก่าในไฟล์ใดก็ได้แล้วกดCTRL + Shift + Rแล้วใส่ชื่อแพ็คเกจใหม่ในกล่องแทนที่แล้วกดค้นหา
ขั้นตอนที่ 10 : จากนั้นป๊อปอัพจะปรากฏขึ้นด้านล่างและเลือกตัวเลือกไฟล์ทั้งหมดจากมัน
ขั้นตอนที่ 11 : สร้างโครงการของคุณอีกครั้ง bingo ชุดข้อมูลโครงการของคุณได้รับการเปลี่ยนแปลง :)
วางเคอร์เซอร์ของคุณในชื่อแพ็คเกจตามที่แสดงด้านล่าง อย่าเลือกเพียงวางไว้
จากนั้นกดShift+ F6คุณจะได้รับหน้าต่างป๊อปอัพที่แสดงด้านล่างเลือก แพคเกจเปลี่ยนชื่อ
ใส่ชื่อใหม่ของคุณและเลือกRefactor (หมายเหตุเนื่องจากเคอร์เซอร์ของฉันอยู่ที่ "บางอย่าง" มีเพียงบางสิ่งเท่านั้นที่ถูกเปลี่ยนชื่อ)
แค่นี้แหละ
คลิกขวาบนแพคเกจที่แผงโครงการ
เลือก Refactor -> Rename จากเมนูบริบท
เปิดไฟล์:
แอพ→รายการ→ AndroidManifest.xml
เน้นแต่ละส่วนในชื่อแพ็คเกจที่คุณต้องการแก้ไข (อย่าเน้นชื่อแพคเกจทั้งหมด) จากนั้น:
ทำตามขั้นตอนเหล่านี้ในแต่ละส่วนของชื่อแพ็คเกจ
เปิด (สคริปต์การไล่ระดับสี) >> (build.gradle (Modul: app))
และอัพเดตapplicationId เป็นชื่อแพ็คเกจของคุณ
เปิดเมนู (สร้าง) และเลือก (สร้างโครงการใหม่)
IntelliJ IDEA มีตัวเลือกที่เรียกว่า "Compact Empty Middle Packages" เลือกไอคอนตัวเลือกของแท็บโครงการและยกเลิก / เปิดใช้งานสิ่งนี้
ดู: ฉันจะเปลี่ยนชื่อแพ็คเกจระดับบนสุดใน IntelliJ IDEA ได้อย่างไร
เลือกแพคเกจที่จะได้รับการ refactored Refactor → ย้าย → "ย้าย xxx แพคเกจใหม่"
ฉันได้เห็นคำตอบที่ได้รับการโหวตสูงสุด แต่ฉันพบว่าแตกต่างกันเล็กน้อยในการทำเช่นนี้ฉันพยายามทำแบบฝึกหัดที่สมบูรณ์ที่สุด
จาก Android Studio ให้คลิกที่ไอคอนรูปเฟือง ( ) จากนั้นเลือกตัวเลือก: "Compact Empty Middle Packages"
เพื่อดูโฟลเดอร์ที่แยกจากกันในมุมมองแบบต้นไม้
ตอนนี้เลือกโฟลเดอร์คลิกปุ่มขวาเพื่อเปิดเมนูบริบทเลือกRefactor
และจากนั้นRename
คุณจะได้รับคำแนะนำในการ refactor แพคเกจ:
จากนั้นหน้าต่างจะแสดงความบังเอิญภายใน Proyect ให้เลือก"Do Refactor"
:
เราไม่จำเป็นต้องเปลี่ยนไฟล์ AndroidManifest.xml หรือ build.gradle ด้วยตนเองการ Refactoring แพ็คเกจจะทำงานได้!
หากชื่อแพคเกจของคุณเป็นมากกว่าสองจุดแยกออกจากกันพูดcom.hello.world
และนอกจากนี้คุณไม่ได้ใส่อะไรในและcom/
com/hello/
ชั้นเรียนทั้งหมดของคุณกำลังดำเนินการcom/hello/world/
คุณอาจทำตามขั้นตอนต่อไปนี้เพื่อกำหนดชื่อแพ็คเกจของคุณใหม่ใน Android Studio หรือ IntelliJ:
com/
, com/hello/
) คุณสามารถทำได้โดยเพิ่มไฟล์สองไฟล์ลงในแพ็คเกจ com.hello.worldcom.hello.world.PackageInfo1.java com.hello.world.PackageInfo2.java
จากนั้นปรับโครงสร้างให้ใหม่โดยย้ายพวกเขาไปที่ com และ com.hello ตามลำดับ คุณจะเห็นคอมและ com.hello นั่งอยู่ที่นั่นในโปรเจ็กต์ ( Alt+1
หรือCommand+1
ทางลัด) และการเปลี่ยนชื่อไดเรกทอรีที่กำลังรอการเปลี่ยนใหม่ที่นั่น
Refactor เพื่อเปลี่ยนชื่อไดเรกทอรีเหล่านี้ตั้งแต่หนึ่งไดเรกทอรีขึ้นไปเพื่อให้ถึงเป้าหมายของคุณ สิ่งเดียวที่คุณควรสังเกตที่นี่คือคุณต้องเลือกไดเรกทอรีมากกว่าแพ็คเกจเมื่อกล่องโต้ตอบถามคุณ
หากคุณมีคลาสจำนวนมากในโครงการของคุณจะใช้เวลาสักครู่ในการรอการสแกนและเปลี่ยนชื่อโดยอัตโนมัติ
นอกจากนี้คุณต้องเปลี่ยนชื่อแพคเกจภายใน AndroidManifest.xml ด้วยตนเองฉันเดาว่าชื่ออื่นในไฟล์นี้จะมีประโยชน์กับคำนำหน้า
[นอกจากนี้]คุณอาจต้องการแทนที่ทั้งหมดcom.hello.world.R
เป็นใหม่XXX.XXX.XXX.R
( Command+Shift+R
สั้น ๆ )
สร้างใหม่และเรียกใช้โครงการของคุณเพื่อดูว่าทำงานหรือไม่ และใช้ "ค้นหาในเส้นทาง" เพื่อค้นหาชื่ออื่นที่ไม่ใช่แบบสัมผัสที่คุณต้องการเปลี่ยนชื่อ
ให้แน่ใจว่าจะไปที่คำตอบที่ดี Sheharyar ของ มีคำตอบมากมายและความคิดเห็นที่เป็นไปตามที่มันว่ามันจะเป็นเรื่องง่ายที่จะทำให้เกิดความสับสนและให้ขึ้น แต่จะทำไม่ได้ ว่าคำตอบของงาน
ในระยะสั้นคุณทำสามสิ่ง :
(1) Compact Empty Middle Packages
ยกเลิกการเลือก
(2) Refactor
จากนั้นRename
แต่ละไดเรกทอรีเก่าโหนดโดยเลือกChange Package
( ไม่ Change Directory
) เพื่อให้ตรงกับชื่อแพคเกจใหม่ (อย่าลืมดูตัวอย่างการเปลี่ยนแปลง)
(3) แก้ไขbuild.gradle
ไฟล์และทำให้APPLICATION_ID
ตรงกับชื่อแพ็คเกจใหม่
อัปเดตคำตอบ: พฤษภาคม 2558
ตกลงฉันดิ้นรนกับการโคลนและเปลี่ยนชื่อโครงการใน Android Studio แต่ในที่สุดฉันก็ประสบความสำเร็จ นี่คือขั้นตอนที่ต้องปฏิบัติตาม:
แค่นั้นแหละ...
ฉันพบวิธีแก้ไขปัญหานี้ได้ง่ายขึ้นซึ่งเปลี่ยนการนำเข้าที่สร้างเช่น com.test.testpackagechange.R
และใช้เวลาประมาณหนึ่งนาที
ขั้นตอนแรกของคุณคือเปิด Android Studio และเปิดหน้าต่างแทนที่ทั้งหมด (Mac: cmd + shift + R, Windows ฉันถือว่า: ctrl + shift + R) พิมพ์ชื่อแพคเกจเก่าของคุณและในชื่อด้านล่างชื่อแพคเกจใหม่ของคุณ คลิกค้นหา การดำเนินการนี้อาจใช้เวลาสักครู่เพราะมันจะดูรายการที่สร้างขึ้นด้วย หากมีมากกว่า 1,000 ครั้งให้คลิกดำเนินการต่อ
หลังจากที่คุณทำเสร็จแล้วให้กดแทนที่ทั้งหมดเพื่อแทนที่ชื่อแพ็คเกจเดิมด้วยชื่อใหม่
ตอนนี้ปิด Android Studio และไปที่ Finder บน Mac หรือ Windows Explorer บน Windows เปลี่ยนชื่อโฟลเดอร์เป็นชื่อแพ็คเกจใหม่เช่นนี้:
ตอนนี้เปิด Android Studio อีกครั้ง Gradle จะซิงค์และชื่อแพ็คเกจของคุณควรเปลี่ยนเป็นชื่อใหม่
ฉันพบว่านี่เป็นไฟล์ที่ง่ายที่สุดและครอบคลุมทุกพื้นที่เช่นไฟล์ที่สร้างขึ้น
ข้อผิดพลาดทั่วไปที่หนึ่งสามารถทำได้คือไม่สามารถเปลี่ยนชื่อโครงสร้างแพ็กเกจเช่นไม่สามารถเปลี่ยนcom.name.androidเป็นcom.Renamed.androidเมื่อพยายามแก้ไขที่com.name.androidระดับ
เพื่อให้มีการเปลี่ยนแปลงที่ต้องการเหมือนกันไประดับหนึ่งขึ้นเช่นcom.nameและที่นี่เมื่อคุณ refactor เปลี่ยนไปเปลี่ยนชื่อ สิ่งนี้จะทำงานได้เสมอ
ฉันพบวิธีอื่นที่ใช้งานได้หรือมีขั้นตอนเพิ่มเติมสำหรับคำตอบบางส่วนที่นี่โดยเฉพาะหากคุณต้องการเปลี่ยนโดเมนเช่นกัน มันทำงานได้ใน Android Studio 1.4 นี่คือสิ่งที่ฉันทำ:
build.gradle
ไฟล์และเปลี่ยนรหัสแอปพลิเคชันใน defaultConfig เป็นชื่อเดียวกับในรายการและสร้างโครงการใหม่ตัวอย่างเช่นหากคุณต้องการเปลี่ยนชื่อ "com.example.app" เป็น "com.YourDomain.app" ให้เปิดไฟล์ภายใต้แพ็คเกจที่จะถูกเปลี่ยนชื่อใน breadcrumb ของแพ็คเกจตั้งค่าเคอร์เซอร์เป็นส่วน "ตัวอย่าง" ของโดเมน และกดShift+ F6และเปลี่ยนชื่อแพ็คเกจเป็น "YourDomain"
ชื่อแพ็คเกจของคุณจะถูกเปลี่ยนจากไฟล์ Java และไฟล์ Manifest ทั้งหมด build.gradle
คุณต้องเปลี่ยนชื่อแพคเกจด้วยตนเองจาก
เปลี่ยนชื่อแพ็คเกจ
ในการเปลี่ยนชื่อแพคเกจสิ่งที่คุณต้องทำคือไปที่AndroidManifest.xml
ไฟล์ของคุณวางเคอร์เซอร์เมาส์ไว้ด้านหน้าส่วนชื่อแพคเกจที่คุณต้องการเปลี่ยน
คลิกขวา> Refactor> เปลี่ยนชื่อ
ในหน้าต่างใหม่ให้กด Rename package
เปลี่ยนชื่อและกด Refactor
…และกด Do Refactor ที่ด้านล่าง
โดยปกติชื่อแพคเกจของคุณจะอยู่ในรูปแบบ com.domain.appname ในตัวอย่างนี้เราเปลี่ยนส่วน appname แต่คุณสามารถทำขั้นตอนเดียวกันสำหรับโดเมนได้
ทำ! คุณเปลี่ยนชื่อแพ็คเกจ!
ฉันลองโซลูชันที่ได้รับการโหวตสองอันดับแรก แต่พบปัญหาบางอย่างแม้ว่าทั้งสองจะทำงานได้บ้าง
หลังจากการทดลองบางอย่างฉันพบว่าวิธีการต่อไปนี้ใช้ได้ดีสำหรับฉัน
หากคุณต้องการเปลี่ยนส่วนสุดท้ายของชื่อแพ็คเกจให้ใช้วิธีการที่อธิบายโดย GreyBeardedGeek คือ
คลิกขวาที่แพ็คเกจในบานหน้าต่างโครงการ เลือก Refactor -> Rename จากเมนูบริบท
หากคุณต้องการเปลี่ยนชื่อแพ็คเกจทั้งหมดให้ทำดังต่อไปนี้
คลิกขวาที่แพ็คเกจในบานหน้าต่างโครงการ เลือก Refactor -> ย้ายจากเมนูบริบท
สิ่งนี้จะสร้างโฟลเดอร์แพ็คเกจใหม่ (เมื่อจำเป็น) แต่จะเก็บส่วนสุดท้ายของชื่อแพคเกจของคุณเหมือนก่อน หากคุณต้องการเปลี่ยนส่วนสุดท้ายให้เปลี่ยนชื่อตามนั้น
โปรดทราบว่าคุณอาจจำเป็นต้องแก้ไขชื่อแพ็คเกจในเช่น build.gradle รายการและ / หรือไฟล์ทรัพยากร xml ใด ๆ หรือแม้กระทั่งในรหัสของคุณหาก hardcoded หลังจากนั้นทำซิงค์ / ล้าง / สร้างโครงการตามความจำเป็น
วิธีเปลี่ยนชื่อcom.example.app
เป็นcom.android.app
:
ในcom.example.app
ตัวอย่างเลือกแพ็คเกจ
Shift + F6
เลือก rename package
เปลี่ยนชื่อตัวอย่างเป็น Android
ยืนยัน do refactor
คลิกขวาที่แพ็คเกจ -> refactor และเปลี่ยนชื่อ
คุณสามารถเปลี่ยนได้ในไฟล์ Manifest บางครั้งถ้าคุณเปลี่ยนชื่อแพ็กเกจ แต่หลังจากสร้างไฟล์. apk มันจะแสดงชื่อแพ็กเกจอื่น ในเวลานั้นให้ตรวจสอบ "applicationId" ในไฟล์build.gradle
ฉันแนะนำให้ใช้Sublime Text (หรือNotepad ++ ) แทนที่ com.one.lastname -> com.two.newname และ com / one / lastname -> com / two / newname ใน ... \ Projects [MyProject] และอย่าลืมเปลี่ยนชื่อ ... \ Projects \ MyProject \ app \ src \ main \ java \ com \ one \ นามสกุล, ... \ Projects \ MyProject \ app \ src \ test \ java \ com \ one \ นามสกุล และ ... \ Projects \ MyProject \ app \ src \ androidTest \ java \ com \ one \ นามสกุล!
นั่นคือทั้งหมดที่ :)
ฉันเชื่อว่าสิ่งที่คุณกำลังมองหาคือ Refactor> Move คุณสามารถกด F6
คุณจะได้รับป๊อปอัปสองรายการ ตรวจสอบให้แน่ใจว่าคุณเลือกเปลี่ยนชื่อแพคเกจทั้งสอง หลังจากนั้นคุณจะได้รับป๊อปอัปเพื่อวางชื่อแพ็คเกจใหม่
โปรดทราบว่าหากชื่อแพคเกจของคุณเป็นเช่น com.example.android.projectname สิ่งนี้จะช่วยให้คุณเปลี่ยน com.example.android เป็นอย่างอื่น
อีกอย่างหนึ่งสิ่งนี้จะอัปเดตแอปพลิเคชัน ID ใน build.gradle ของคุณเช่นกัน เพียงตรวจสอบให้แน่ใจว่าช่องทำเครื่องหมายสำหรับ "ค้นหาในความคิดเห็นและสตริง" และ "ค้นหาข้อความที่เกิดขึ้น" ได้รับการตรวจสอบเพื่อให้ใช้งานได้
วิธีที่ง่ายและรวดเร็ว:
1 - เปิดMainActivity.java
หรือไฟล์จาวาที่มีอยู่
ที่ด้านบนสุดจะมีการประกาศแพ็คเกจเช่น:
แพ็คเกจ com
example
.myapp;
เลือกส่วนแพคเกจที่คุณต้องการเปลี่ยนและกดShift + F6 example
ผมเองต้องการเปลี่ยน
ในช่องโต้ตอบคำเตือนเลือกRename packageจากนั้นใส่ชื่อแพ็คเกจที่ต้องการ
2- แท็กเปิดAndroidManifest.xml
และด้านใน<manifest>
เปลี่ยนเป็นpackage
ชื่อแพ็คเกจที่ต้องการ
3- เปิดbuild.gradle(Module: app)
และเปลี่ยนเป็นapplicationId
ชื่อแพ็คเกจที่ต้องการ
โปรดลองขั้นตอนต่อไปนี้:
******* ในที่สุดก็เสร็จ ******
กดCtrl+ Shift+R
แทนที่แพ็คเกจเก่าด้วยแพ็คเกจใหม่
คลิกขวาที่ชื่อแพ็คเกจ
Refactor
> Rename
และเปลี่ยนชื่อเป็นใหม่
ctrl+ Shift+ Rได้ทำงานเสมอสำหรับฉัน เพียงแค่เลือกreplace all
All Files
ส่วนแรกประกอบด้วยการสร้างแพคเกจใหม่ภายใต้java
โฟลเดอร์และเลือกแล้วลากไฟล์ที่มาทั้งหมดของคุณจากนี้old package
new package
หลังจากนั้นคุณต้องremane
ใช้ชื่อแพคเกจใน Android manifest
กับชื่อของแพ็คเกจใหม่
ในขั้นตอนที่ 2 และนี่คือสิ่งที่คุณต้อง do.You จำเป็นต้องเปลี่ยนชื่อแพ็กเกจเดิมในapplicationId
ภายใต้โมดูลในสตูดิโอของคุณหุ่นยนต์นอกเหนือไปจากการเปลี่ยนชื่อแพคเกจในbuild.gradle
manifest
ดังนั้นโดยสรุปคลิกbuild.gradle
ที่ด้านล่าง "AndroidManifest.xml" และปรับเปลี่ยนค่าของapplicationId
ชื่อแพคเกจใหม่ของคุณ
build
จากนั้นที่ด้านบนมากภายใต้ โครงการของคุณแล้วclean
rebuild
มันควรจะดีจากที่นี่
วิธีที่ดีที่สุดคือการเขียนชื่อแพ็คเกจใหม่และลากจากชื่อแพ็คเกจเก่า
วิธีที่สองหากคุณคลิกRefactorจากนั้นย้ายตัวเลือกจากนั้นเปลี่ยนชื่อแพคเกจจะเปลี่ยนชื่อชื่อแพ็กเกจแล้วสร้างใหม่
ใน Build.gradle คุณต้องทำด้วยตนเองถ้าคุณ Refactor มันจะไม่เปลี่ยนชื่อใน Build.gradle