เปลี่ยนชื่อแพ็คเกจใน Android Studio


1361

คุณจะเปลี่ยนชื่อแพ็คเกจใน IDE Android Studio ใหม่ตาม IntelliJ IDEA ได้อย่างไร

มีการรวมการรีแฟคเตอร์อัตโนมัติหรือไม่?

ฉันต้องการทำการปรับโครงสร้างจำนวนมาก แต่ไม่รู้วิธีการ ฉันทำงานสองปีกับ Eclipse และใน Eclipse เป็นการทำงานด้วยคลิกเดียว


โปรดดูคำตอบของฉันที่นี่ ฉันได้ประสบความสำเร็จในการจัดการการเปลี่ยนชื่อโครงการของฉันโดยใช้ขั้นตอนที่ฉันได้อธิบายไว้
Leigh

เป็นไปได้ที่ซ้ำกันของการเปลี่ยนชื่อโครงการบน Android Studio
Leigh

ทีละขั้นตอนกระบวนการในการเปลี่ยนชื่อแพคเกจ ... stackoverflow.com/a/46945668/6915572
Shubham Soni

คำตอบโดย Sheharyar ทำงานตามที่คาดไว้ เช่น 1. Refactor 2. แก้ไข build.gradle อย่างไรก็ตามคุณจะต้องติดตามมันโดยเปลี่ยนแอตทริบิวต์ app_name ในไฟล์ strings.xml ด้วย!
Suhas Mallya

คำตอบ:


2848

ใน Android Studio คุณสามารถทำสิ่งนี้:

ตัวอย่างเช่นหากคุณต้องการเปลี่ยนcom.example.appเป็นmy.awesome.game:

  1. ในบานหน้าต่างโครงการของคุณคลิกที่ไอคอนรูปเฟืองเล็ก ๆ ( ไอคอน Gears)

  2. ยกเลิกการเลือก / ยกเลิกการเลือกCompact Empty Middle Packagesตัวเลือก

    แพ็คเกจแพ็คเกจกลางว่างเปล่าขนาดกะทัดรัด

  3. ไดเรกทอรีแพ็คเกจของคุณจะแตกในแต่ละไดเรกทอรี

  4. เลือกแต่ละไดเรกทอรีที่คุณต้องการเปลี่ยนชื่อและ:

    • คลิกขวา
    • เลือก Refactor
    • คลิกที่ Rename
    • ในกล่องโต้ตอบป็อปอัพคลิกRename Packageแทนการเปลี่ยนชื่อไดเรกทอรี
    • ป้อนชื่อใหม่และกดปุ่มRefactor
    • คลิกDo Refactorที่ด้านล่าง
    • รอสักครู่เพื่อให้ Android Studio อัปเดตการเปลี่ยนแปลงทั้งหมด
    • หมายเหตุ: เมื่อเปลี่ยนชื่อcomใน Android Studio อาจมีคำเตือน ในกรณีเช่นนี้ให้เลือก เปลี่ยนชื่อทั้งหมด

    ป้อนคำอธิบายภาพที่นี่

  5. ตอนนี้เปิดไฟล์ Gradle Buildของคุณ( build.gradle- โดยปกติappหรือmobile) อัปเดตapplicationIdในdefaultConfigชื่อแพคเกจใหม่ของคุณและ Sync Gradle หากยังไม่ได้รับการอัพเดตโดยอัตโนมัติ

    ไดเรกทอรี Refactor

  6. คุณอาจต้องเปลี่ยนpackage=แอตทริบิวต์ในไฟล์ Manifest ของคุณ

  7. ทำความสะอาดและสร้างใหม่

  8. ทำ! อย่างไรก็ตาม Android Studio จำเป็นต้องทำให้กระบวนการนี้ง่ายขึ้นเล็กน้อย


32
ทำความสะอาดและสร้างใหม่
Sheharyar

20
คำเตือน: หากคุณเลือก "เปลี่ยนชื่อทั้งหมด" เมื่อเปลี่ยนชื่อเป็น "com" ด้วยจะไม่เปลี่ยนเฉพาะสิ่งต่าง ๆ ลงในโมดูลที่เลือก แต่เปลี่ยนเป็นโมดูลทั้งหมดในโครงการนี้
ricky.tribbia

17
@Antonio ลากไฟล์ในcom.example.testการแล้วลบcom.example com.example.test
Dick Lucas

27
ขั้นตอนนี้ใช้ได้สำหรับฉัน ฉันต้องเปลี่ยน AndroidManifest.xml เพื่อสะท้อนชื่อใหม่ด้วย ตัวอย่างเช่น -> package = "my.awesome.game">
nevzo

10
หากคุณใช้ firebase ให้เปลี่ยน package_name ของคุณใน google-services.json เช่นกัน
ซามาร์

550

วิธีการที่ดีก็คือประการแรกสร้างแพคเกจใหม่ที่มีชื่อที่ต้องการโดยคลิกขวาที่โฟลเดอร์ Java → ใหม่ → แพคเกจ

จากนั้นเลือกและลากคลาสทั้งหมดของคุณไปยังแพ็คเกจใหม่ Android Studio จะทำการสร้างชื่อแพ็คเกจใหม่ทุกที่

สุดท้ายลบแพ็คเกจเก่า

เสร็จสิ้น

สำคัญมาก:

คุณต้องเปลี่ยนไฟล์AndroidManifest.xmlและbuild.gradleด้วยตนเองเป็นแพ็คเกจใหม่หากคุณใช้วิธีนี้


67
คุณอาจต้องอัปเดตไฟล์ Android Manifest เพื่ออ้างอิงแพ็คเกจใหม่หากคุณใช้วิธีนี้ ขั้นตอนง่ายมากแม้ว่าทางออกที่ดี
Dick Lucas

10
คุณอาจต้องรีสตาร์ท Android Studio เพื่ออัปเดต.. aa / workspace.xml
Christoph

24
คุณอาจต้องเปลี่ยน build.gradle เพื่อให้สอดคล้องกับแพ็คเกจใหม่
Samik Bandyopadhyay

35
วิธีการที่ดี แต่ต้องทำอีก 2 สิ่ง (นอกเหนือจากการอัปเดตไฟล์รายการ) เพื่อให้ทำงานได้อย่างสมบูรณ์อันดับแรกต้องเปลี่ยน / เปลี่ยนชื่อการนำเข้าไฟล์ R ในโครงการทั้งหมดและประการที่สอง appdebug ใช้ชื่อแพคเกจเก่า ) เพิ่ม applicationId "com.packagename" ในแอป build.gradle defaultconfig ..
baboo

1
@baboo เพื่อให้ส่วนแรกนั้นง่ายขึ้นคุณสามารถเพิ่มประสิทธิภาพการนำเข้าไฟล์สำหรับทั้งโครงการโดยกด Ctrl + Alt + O แล้วเลือกไฟล์ทั้งหมดแล้วคลิกเรียกใช้ สิ่งนี้มีประโยชน์อย่างยิ่งหากคุณมีกิจกรรมมากมายและคลาสอื่น ๆ ที่มีการนำเข้าไฟล์ R
ซามูเอลราบิโนวิทซ์

200

การเปลี่ยนID แอปพลิเคชัน (ซึ่งตอนนี้ไม่ขึ้นอยู่กับชื่อแพ็คเกจ) สามารถทำได้อย่างง่ายดายในขั้นตอนเดียว คุณไม่ต้องสัมผัส AndroidManifest ทำต่อไปนี้แทน:

  1. คลิกขวาที่โฟลเดอร์รูทของโครงการของคุณ
  2. คลิก "เปิดการตั้งค่าโมดูล"
  3. ไปที่แท็บ Flavours
  4. เปลี่ยน applicationID เป็นชื่อแพ็กเกจที่คุณต้องการ กดตกลง

หมายเหตุสิ่งนี้จะไม่เปลี่ยนชื่อแพ็คเกจ การแยกชื่อแพ็กเกจและรหัสแอปพลิเคชันมีการอธิบายไว้ที่นี่: http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename


8
สิ่งนี้จะเปลี่ยนชื่อเป็น gradle เท่านั้นและไม่มีที่อื่นอีกแล้ว
Jacob R

4
นี่คือคำตอบเดียวของจอกศักดิ์สิทธิ์! ฉลาดมาก!
sud007

4
ต้องเลือกคำตอบนี้ให้ถูกต้องเนื่องจากเป็นวิธีที่ง่ายและรวดเร็วในการติดตาม
Ayaz Alifov

6
จำเป็นต้องได้รับการยอมรับคำตอบอื่น ๆ มีความยาวและคุณไม่สามารถเปลี่ยนcom.example.sampleเป็นcom.exampleคำตอบอื่น ๆ ได้
Inder Kumar Rathore

1
นี่คือคำตอบที่ถูกต้อง ทำงานอย่างมีเสน่ห์ด้วยเวลาน้อยที่สุด
อาทิตย์

77

วิธีที่ฉันใช้สำหรับเปลี่ยนชื่อแพคเกจนั้นง่ายมากดังนี้: -

ขั้นตอนที่ 1 : เลือกตัวเลือกโครงการจากเมนูด้านซ้ายของ Android Studio

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 2 : คลิกขวาบน java และเพิ่มแพ็คเกจใหม่และตั้งชื่อแพ็คเกจที่ต้องการ

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 3 : ระบุชื่อแพ็กเกจใหม่ให้คุณ

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 4 : คัดลอกไฟล์ทั้งหมดจากแพ็คเกจเก่าของคุณและวางในแพ็คเกจใหม่

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 5 : เปลี่ยนชื่อชื่อไฟล์ในไฟล์ Manifest

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 6 : เปลี่ยนชื่อชื่อแพ็คเกจในไฟล์ build.gradle

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 7 : จากนั้นคลิกขวาที่แพ็คเกจเก่าแล้วลบมันด้วยข้อมูลทั้งหมดแล้วลบไดเรกทอรีนั้นด้วย

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 8 : จากนั้นสร้างโครงการของคุณใหม่

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 9 : จากนั้นคุณจะพบข้อผิดพลาดของการนำเข้าชื่อแพคเกจเก่า ในโครงการของคุณ เลือกชื่อแพ็กเกจเก่าในไฟล์ใดก็ได้แล้วกดCTRL + Shift + Rแล้วใส่ชื่อแพ็คเกจใหม่ในกล่องแทนที่แล้วกดค้นหา

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 10 : จากนั้นป๊อปอัพจะปรากฏขึ้นด้านล่างและเลือกตัวเลือกไฟล์ทั้งหมดจากมัน

ป้อนคำอธิบายรูปภาพที่นี่

ขั้นตอนที่ 11 : สร้างโครงการของคุณอีกครั้ง bingo ชุดข้อมูลโครงการของคุณได้รับการเปลี่ยนแปลง :)


1
แทนที่ในเส้นทางไม่มี tru Shift + R ใน Android studio 2.3.3 อีกแล้วเน้นเส้นทางเก่าไปที่แก้ไข -> ค้นหา -> แทนที่ในเส้นทาง ตรวจสอบให้แน่ใจว่าได้อัปเดตไฟล์ gradle ของคุณด้วย ไชโย
ralphgabb

ไม่ได้รับข้อผิดพลาดใด ๆ กับชื่อแพคเกจเก่า ดังนั้นไม่ต้องทำอะไรหลังจากขั้นตอนที่ 9 ขอบคุณ!
user3760100

หากคุณไม่ได้รับข้อผิดพลาดใด ๆ อย่าทำตามขั้นตอนที่ 9
Mehroz Munir

1
ข้อผิดพลาด: การดำเนินการล้มเหลวสำหรับงาน ': แอพ: compileDebugAidl' > java.io.IOException: com.android.ide.common.process.ProcessException:
Pablo Cegarra

แทนที่จะคัดลอกฉันเพิ่งย้ายและโดยใช้การดำเนินการนี้แทนฉันไม่มี erros หลังจากสร้างใหม่
Cavaleiro

48
  1. ไปที่ไฟล์ AndroidManifest.xml ของคุณ
  2. วางเคอร์เซอร์ของคุณในชื่อแพ็คเกจตามที่แสดงด้านล่าง อย่าเลือกเพียงวางไว้

    ป้อนคำอธิบายภาพที่นี่

  3. จากนั้นกดShift+ F6คุณจะได้รับหน้าต่างป๊อปอัพที่แสดงด้านล่างเลือก แพคเกจเปลี่ยนชื่อ

    ป้อนคำอธิบายภาพที่นี่

  4. ใส่ชื่อใหม่ของคุณและเลือกRefactor (หมายเหตุเนื่องจากเคอร์เซอร์ของฉันอยู่ที่ "บางอย่าง" มีเพียงบางสิ่งเท่านั้นที่ถูกเปลี่ยนชื่อ)

แค่นี้แหละ


1
ขอบคุณที่ทำงานกับ Android Studio 1.5.1 มันเปลี่ยนแพคเกจโดยอัตโนมัติไม่จำเป็นต้องสร้างแพ็คเกจใหม่แล้วลากและวางไฟล์และลบแพ็คเกจเก่า Blah Blah Blah
Shan Xeeshi

@Prince Jayakumar คำสั่ง 'อย่าเลือกเพียงแค่วางไว้'จะทำให้เกิดความสับสน เพียงแค่วางเคอร์เซอร์ของเมาส์ shft + f6 จะไม่ทำงาน หากเครื่องหมายรูปหมวกอยู่ที่อื่นในไฟล์คุณต้องคลิกที่ชื่อแพ็คเกจแล้ว shft + f6 จะใช้งานได้
Prabs

วิธีที่ง่ายที่สุดในการเปลี่ยนชื่อแพ็คเกจ!
Timo Schuck

ทำงานอย่างสมบูรณ์แบบบน Android Studio 3.5
Abigail La'Fay

เปลี่ยนชื่อแพคเกจและรหัสแอปให้สมบูรณ์ในขั้นตอนที่น้อยที่สุด! ขอบคุณ
user1608385

43

คลิกขวาบนแพคเกจที่แผงโครงการ

เลือก Refactor -> Rename จากเมนูบริบท


1
สิ่งนี้ใช้งานได้ดีสำหรับฉันและต้องอัปเดตไฟล์ AndroidManifest ด้วย
physphil

115
Refactor> การเปลี่ยนชื่ออนุญาตให้ฉันเปลี่ยนชื่อส่วนสุดท้ายของแพ็คเกจเช่นแอปใน com.example.mypackage.app
GilliMonsta

1
ฉันทำแบบนี้ แต่ตอนนี้มันบอกว่าไม่มีชั้นเรียนในเวลาเปิดตัว คุณเปลี่ยนชื่อมันได้อย่างไร
Dharmik

ฉันใช้เมนูหลัก "Refactor" แล้วคลิกที่ "Rename"
Codebeat

@GilliMonsta คุณสามารถเลือกโฟลเดอร์แอปของคุณในการตั้งค่าการคลิกที่แผงด้านขวาและยกเลิกการทำเครื่องหมายแพคเกจกลางที่ว่างเปล่าขนาดกะทัดรัด
Taranmeet Singh

25
  1. เปิดไฟล์:

    แอพ→รายการ→ AndroidManifest.xml

    ป้อนคำอธิบายภาพที่นี่

    เน้นแต่ละส่วนในชื่อแพ็คเกจที่คุณต้องการแก้ไข (อย่าเน้นชื่อแพคเกจทั้งหมด) จากนั้น:

    • คลิกขวาที่เมาส์→→การเปลี่ยนโครงสร้าง→เปลี่ยนชื่อ→แพคเกจการเปลี่ยนชื่อ
    • พิมพ์ชื่อใหม่และกด (Refactor)

    ทำตามขั้นตอนเหล่านี้ในแต่ละส่วนของชื่อแพ็คเกจ

    ป้อนคำอธิบายภาพที่นี่

  2. เปิด (สคริปต์การไล่ระดับสี) >> (build.gradle (Modul: app))

    และอัพเดตapplicationId เป็นชื่อแพ็คเกจของคุณ

    ป้อนคำอธิบายภาพที่นี่

  3. เปิดเมนู (สร้าง) และเลือก (สร้างโครงการใหม่)


ฉันพยายามทำสิ่งนี้และฉันพบอุปสรรค์ ฉันกำลังพยายามเปลี่ยน com.example.android.package เป็นโดเมนของฉันเอง (ซึ่งลงท้ายด้วย. net) ฉันสามารถเปลี่ยน 'ตัวอย่าง' และ 'แพ็คเกจ' แต่ฉันไม่สามารถเปลี่ยน 'com' ได้ มันไม่ได้เปลี่ยนชื่อไดเรกทอรีใด ๆ เคล็ดลับใด ๆ
Rob Rose

@ RobertRose ฉันมีทางออกสำหรับปัญหาของคุณ คุณยังทำงานกับมันอยู่เหรอ?
Android ดั้งเดิม

ฉันวางมันไว้และไปข้างหน้าและทิ้งไว้ มันไม่ใช่การผลิต สำหรับการอ้างอิงในอนาคตคุณเกิดอะไรขึ้น
ร็อบโรส

อันที่หนึ่งไม่ทำงานหากฉันมีแพ็คเกจ "xxx.mydomain.com")
Jemshit Iskenderov

สวย. ขั้นตอนที่สองมีความสำคัญและมักจะมองหาคำตอบส่วนใหญ่
AlleyOOP

16

IntelliJ IDEA มีตัวเลือกที่เรียกว่า "Compact Empty Middle Packages" เลือกไอคอนตัวเลือกของแท็บโครงการและยกเลิก / เปิดใช้งานสิ่งนี้

ดู: ฉันจะเปลี่ยนชื่อแพ็คเกจระดับบนสุดใน IntelliJ IDEA ได้อย่างไร


1
สิ่งนี้มีประโยชน์ หลังจาก 'ปิดใช้งาน' สิ่งต่าง ๆ ที่มีความชัดเจนมากขึ้นและฉันสามารถลบแพ็คเกจที่ว่างเปล่าได้
Chris Nevill

@ChrisNevill และคุณลบแพ็คเกจที่ว่างเปล่าได้อย่างไร?
beretis

ฉันคิดว่าฉันเพิ่งเลือกพวกเขาและกดลบ ฉันไม่สามารถทำซ้ำปัญหาในขณะนี้ดังนั้นจำไม่ได้ว่า
Chris Nevill

ฉันเห็นด้วยว่ามันมีประโยชน์จริงๆ ควรรวมอยู่ในคำตอบมาตรฐานย่อยทั้งหมดที่ฉันเคยเห็นเกี่ยวกับหัวข้อนี้
iaindownie

16

เลือกแพคเกจที่จะได้รับการ refactored Refactorย้าย"ย้าย xxx แพคเกจใหม่"


นี่เป็นวิธีที่ง่าย d
เด็ก droid

4
ไม่ทำงานเปลี่ยนแพคเกจของฉันจาก "com.company.oldname" เป็น "com.company.newname.oldname" ดู? วิธีนี้ไม่อนุญาตให้เปลี่ยนองค์ประกอบสุดท้ายของชื่อ (และฉันพยายามหลายครั้ง)
Jose Manuel Abarca Rodríguez

13

ฉันได้เห็นคำตอบที่ได้รับการโหวตสูงสุด แต่ฉันพบว่าแตกต่างกันเล็กน้อยในการทำเช่นนี้ฉันพยายามทำแบบฝึกหัดที่สมบูรณ์ที่สุด

จาก Android Studio ให้คลิกที่ไอคอนรูปเฟือง ( ไอคอน Gears) จากนั้นเลือกตัวเลือก: "Compact Empty Middle Packages"เพื่อดูโฟลเดอร์ที่แยกจากกันในมุมมองแบบต้นไม้

แนะนำตัวเองจาก de la imagen aquí

ตอนนี้เลือกโฟลเดอร์คลิกปุ่มขวาเพื่อเปิดเมนูบริบทเลือกRefactorและจากนั้นRename

แนะนำตัวเองจาก de la imagen aquí

คุณจะได้รับคำแนะนำในการ refactor แพคเกจ:

แนะนำตัวเองจาก de la imagen aquí

จากนั้นหน้าต่างจะแสดงความบังเอิญภายใน Proyect ให้เลือก"Do Refactor":

แนะนำตัวเองจาก de la imagen aquí

เราไม่จำเป็นต้องเปลี่ยนไฟล์ AndroidManifest.xml หรือ build.gradle ด้วยตนเองการ Refactoring แพ็คเกจจะทำงานได้!


8

หากชื่อแพคเกจของคุณเป็นมากกว่าสองจุดแยกออกจากกันพูดcom.hello.worldและนอกจากนี้คุณไม่ได้ใส่อะไรในและcom/ com/hello/ชั้นเรียนทั้งหมดของคุณกำลังดำเนินการcom/hello/world/คุณอาจทำตามขั้นตอนต่อไปนี้เพื่อกำหนดชื่อแพ็คเกจของคุณใหม่ใน Android Studio หรือ IntelliJ:

  • [FIRST]เพิ่มบางสิ่งภายใต้ไดเรกทอรีของคุณ ( com/, com/hello/) คุณสามารถทำได้โดยเพิ่มไฟล์สองไฟล์ลงในแพ็คเกจ com.hello.world
   com.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สั้น ๆ )

  • สร้างใหม่และเรียกใช้โครงการของคุณเพื่อดูว่าทำงานหรือไม่ และใช้ "ค้นหาในเส้นทาง" เพื่อค้นหาชื่ออื่นที่ไม่ใช่แบบสัมผัสที่คุณต้องการเปลี่ยนชื่อ

  • สนุกกับมัน.

6

ให้แน่ใจว่าจะไปที่คำตอบที่ดี Sheharyar ของ มีคำตอบมากมายและความคิดเห็นที่เป็นไปตามที่มันว่ามันจะเป็นเรื่องง่ายที่จะทำให้เกิดความสับสนและให้ขึ้น แต่จะทำไม่ได้ ว่าคำตอบของงาน

ในระยะสั้นคุณทำสามสิ่ง :

(1) Compact Empty Middle Packagesยกเลิกการเลือก

(2) Refactorจากนั้นRenameแต่ละไดเรกทอรีเก่าโหนดโดยเลือกChange Package( ไม่ Change Directory ) เพื่อให้ตรงกับชื่อแพคเกจใหม่ (อย่าลืมดูตัวอย่างการเปลี่ยนแปลง)

(3) แก้ไขbuild.gradleไฟล์และทำให้APPLICATION_IDตรงกับชื่อแพ็คเกจใหม่


3
ใครก็ตามที่ลงคะแนนสิ่งนี้อย่างแท้จริงจะหายไปบางสิ่งบางอย่างตั้งแต่คำตอบของฉันเป็นบทสรุปของคำตอบของ Sheharyar ว่า GOT 332 การอัปเดตและสิ่งที่ฉันทำก็ลดความซับซ้อนลงเพราะดูเกี่ยวข้อง เส้นประสาทของคนที่มีความสุขสั้นและสั้น ชอบที่จะเห็นเหตุผลของการลงคะแนนเสียง ไม่ต้องสงสัยเลยว่าฉันจะไม่เห็นมัน
DSlomer64

ตกลง. ในช่วง 3.5 ปีต่อมาฉันอาจจะเห็นว่าทำไม downvotes อาจถูกส่งออกไปเนื่องจากอาจไม่ชัดเจนอย่างที่มันเป็น WAS (แต่ลดความหย่อน!) แต่แน่นอนตอนนี้ขอบคุณ @Peter Mortensen สองวัน - แก้ไขแบบเดิมและสร้างแบบทันที
DSlomer64

5

อัปเดตคำตอบ: พฤษภาคม 2558

ตกลงฉันดิ้นรนกับการโคลนและเปลี่ยนชื่อโครงการใน Android Studio แต่ในที่สุดฉันก็ประสบความสำเร็จ นี่คือขั้นตอนที่ต้องปฏิบัติตาม:

  1. คัดลอกโฟลเดอร์โครงการเปลี่ยนชื่อและเปิดด้วย Android Studio
  2. เปลี่ยนชื่อไดเรกทอรีโมดูลจาก explorer
  3. เปลี่ยนชื่อ projectName.iml และเนื้อหา
  4. เปลี่ยนชื่อเนื้อหาความคิด / .name
  5. ในบานหน้าต่างโครงการของคุณคลิกที่ไอคอนรูปเฟืองเล็ก -> ยกเลิกการเลือก "แพคเกจขนาดกลางที่ว่างเปล่าที่ว่างเปล่า"
  6. ไดเรกทอรี Refactor src สำหรับชื่อแพ็คเกจใหม่ (เปลี่ยนชื่อแพ็คเกจ "ไม่เปลี่ยนชื่อไดเรกทอรี")
  7. ใน build.gradle เปลี่ยนชื่อแอปพลิเคชัน id
  8. settings.gradle เปลี่ยนชื่อโมดูล

แค่นั้นแหละ...


5

ฉันพบวิธีแก้ไขปัญหานี้ได้ง่ายขึ้นซึ่งเปลี่ยนการนำเข้าที่สร้างเช่น 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 จะซิงค์และชื่อแพ็คเกจของคุณควรเปลี่ยนเป็นชื่อใหม่

ฉันพบว่านี่เป็นไฟล์ที่ง่ายที่สุดและครอบคลุมทุกพื้นที่เช่นไฟล์ที่สร้างขึ้น


5

ข้อผิดพลาดทั่วไปที่หนึ่งสามารถทำได้คือไม่สามารถเปลี่ยนชื่อโครงสร้างแพ็กเกจเช่นไม่สามารถเปลี่ยนcom.name.androidเป็นcom.Renamed.androidเมื่อพยายามแก้ไขที่com.name.androidระดับ

เพื่อให้มีการเปลี่ยนแปลงที่ต้องการเหมือนกันไประดับหนึ่งขึ้นเช่นcom.nameและที่นี่เมื่อคุณ refactor เปลี่ยนไปเปลี่ยนชื่อ สิ่งนี้จะทำงานได้เสมอ


5

ฉันพบวิธีอื่นที่ใช้งานได้หรือมีขั้นตอนเพิ่มเติมสำหรับคำตอบบางส่วนที่นี่โดยเฉพาะหากคุณต้องการเปลี่ยนโดเมนเช่นกัน มันทำงานได้ใน Android Studio 1.4 นี่คือสิ่งที่ฉันทำ:

  1. เปิด Manifest.xml และเปลี่ยนชื่อแพ็คเกจเป็นสิ่งที่คุณต้องการ
  2. เปิดแอปของคุณ build.gradleไฟล์และเปลี่ยนรหัสแอปพลิเคชันใน defaultConfig เป็นชื่อเดียวกับในรายการและสร้างโครงการใหม่
  3. หากยังคงมีปัญหาให้เปิดไฟล์ภายใต้ชื่อแพคเกจไปที่ breadcrumbs ของแพ็กเกจ (เช่นการประกาศแพ็กเกจที่ส่วนหัวของไฟล์) และตั้งค่าเคอร์เซอร์ของคุณเป็นโดเมนที่คุณต้องการเปลี่ยนและกด "Shift + F6" ด้วยกล่องโต้ตอบที่มีคำเตือนการใช้หลายครั้งคลิกที่ "เปลี่ยนชื่อแพ็คเกจ" จากนั้นคลิกที่ "Do Refactor" มันควรเปลี่ยนชื่อทุกอย่างรวมถึงไฟล์ R.Java

ตัวอย่างเช่นหากคุณต้องการเปลี่ยนชื่อ "com.example.app" เป็น "com.YourDomain.app" ให้เปิดไฟล์ภายใต้แพ็คเกจที่จะถูกเปลี่ยนชื่อใน breadcrumb ของแพ็คเกจตั้งค่าเคอร์เซอร์เป็นส่วน "ตัวอย่าง" ของโดเมน และกดShift+ F6และเปลี่ยนชื่อแพ็คเกจเป็น "YourDomain"


5
  1. เลือกชื่อแพ็คเกจในโฟลเดอร์ Java
  2. Shift+F6
  3. OKเปลี่ยนชื่อแพคเกจและคลิก

ชื่อแพ็คเกจของคุณจะถูกเปลี่ยนจากไฟล์ Java และไฟล์ Manifest ทั้งหมด build.gradleคุณต้องเปลี่ยนชื่อแพคเกจด้วยตนเองจาก


1
หาก Shift + F6 ไม่ทำงานสำหรับคุณคุณสามารถลอง Alt + Shift + R เพื่อสร้างแพ็คเกจใหม่ ส่วนที่เหลือของขั้นตอนจะเหมือนกัน
ข้อยกเว้นที่ไม่ได้ตรวจสอบ

5

เปลี่ยนชื่อแพ็คเกจ


ในการเปลี่ยนชื่อแพคเกจสิ่งที่คุณต้องทำคือไปที่AndroidManifest.xmlไฟล์ของคุณวางเคอร์เซอร์เมาส์ไว้ด้านหน้าส่วนชื่อแพคเกจที่คุณต้องการเปลี่ยน


ป้อนคำอธิบายรูปภาพที่นี่


คลิกขวา> Refactor> เปลี่ยนชื่อ


ป้อนคำอธิบายรูปภาพที่นี่


ในหน้าต่างใหม่ให้กด Rename package


ป้อนคำอธิบายรูปภาพที่นี่


เปลี่ยนชื่อและกด Refactor


ป้อนคำอธิบายรูปภาพที่นี่


…และกด Do Refactor ที่ด้านล่าง


ป้อนคำอธิบายรูปภาพที่นี่


โดยปกติชื่อแพคเกจของคุณจะอยู่ในรูปแบบ com.domain.appname ในตัวอย่างนี้เราเปลี่ยนส่วน appname แต่คุณสามารถทำขั้นตอนเดียวกันสำหรับโดเมนได้

ทำ! คุณเปลี่ยนชื่อแพ็คเกจ!


4

ฉันลองโซลูชันที่ได้รับการโหวตสองอันดับแรก แต่พบปัญหาบางอย่างแม้ว่าทั้งสองจะทำงานได้บ้าง

  • รายการ: วิธีการลากแพคเกจใหม่ปล่อยให้บางอย่างไม่เปลี่ยนแปลงและสร้างผลกระทบที่ไม่พึงประสงค์บางอย่าง
  • รายการ: แพคเกจการเปลี่ยนชื่อจะเปลี่ยนเฉพาะส่วนสุดท้ายของชื่อแพ็คเกจ

หลังจากการทดลองบางอย่างฉันพบว่าวิธีการต่อไปนี้ใช้ได้ดีสำหรับฉัน

หากคุณต้องการเปลี่ยนส่วนสุดท้ายของชื่อแพ็คเกจให้ใช้วิธีการที่อธิบายโดย GreyBeardedGeek คือ

คลิกขวาที่แพ็คเกจในบานหน้าต่างโครงการ เลือก Refactor -> Rename จากเมนูบริบท

หากคุณต้องการเปลี่ยนชื่อแพ็คเกจทั้งหมดให้ทำดังต่อไปนี้

คลิกขวาที่แพ็คเกจในบานหน้าต่างโครงการ เลือก Refactor -> ย้ายจากเมนูบริบท

สิ่งนี้จะสร้างโฟลเดอร์แพ็คเกจใหม่ (เมื่อจำเป็น) แต่จะเก็บส่วนสุดท้ายของชื่อแพคเกจของคุณเหมือนก่อน หากคุณต้องการเปลี่ยนส่วนสุดท้ายให้เปลี่ยนชื่อตามนั้น

โปรดทราบว่าคุณอาจจำเป็นต้องแก้ไขชื่อแพ็คเกจในเช่น build.gradle รายการและ / หรือไฟล์ทรัพยากร xml ใด ๆ หรือแม้กระทั่งในรหัสของคุณหาก hardcoded หลังจากนั้นทำซิงค์ / ล้าง / สร้างโครงการตามความจำเป็น


4

วิธีเปลี่ยนชื่อcom.example.appเป็นcom.android.app:

  1. ในcom.example.appตัวอย่างเลือกแพ็คเกจ

  2. Shift + F6

  3. เลือก rename package

  4. เปลี่ยนชื่อตัวอย่างเป็น Android

  5. ยืนยัน do refactor


4

คลิกขวาที่แพ็คเกจ -> refactor และเปลี่ยนชื่อ

คุณสามารถเปลี่ยนได้ในไฟล์ Manifest บางครั้งถ้าคุณเปลี่ยนชื่อแพ็กเกจ แต่หลังจากสร้างไฟล์. apk มันจะแสดงชื่อแพ็กเกจอื่น ในเวลานั้นให้ตรวจสอบ "applicationId" ในไฟล์build.gradle


4

ฉันแนะนำให้ใช้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 \ นามสกุล!

นั่นคือทั้งหมดที่ :)

ภาพหน้าจอ


3

ฉันเชื่อว่าสิ่งที่คุณกำลังมองหาคือ Refactor> Move คุณสามารถกด F6

คุณจะได้รับป๊อปอัปสองรายการ ตรวจสอบให้แน่ใจว่าคุณเลือกเปลี่ยนชื่อแพคเกจทั้งสอง หลังจากนั้นคุณจะได้รับป๊อปอัปเพื่อวางชื่อแพ็คเกจใหม่

โปรดทราบว่าหากชื่อแพคเกจของคุณเป็นเช่น com.example.android.projectname สิ่งนี้จะช่วยให้คุณเปลี่ยน com.example.android เป็นอย่างอื่น

อีกอย่างหนึ่งสิ่งนี้จะอัปเดตแอปพลิเคชัน ID ใน build.gradle ของคุณเช่นกัน เพียงตรวจสอบให้แน่ใจว่าช่องทำเครื่องหมายสำหรับ "ค้นหาในความคิดเห็นและสตริง" และ "ค้นหาข้อความที่เกิดขึ้น" ได้รับการตรวจสอบเพื่อให้ใช้งานได้


3

วิธีที่ง่ายและรวดเร็ว:

1 - เปิดMainActivity.javaหรือไฟล์จาวาที่มีอยู่

ที่ด้านบนสุดจะมีการประกาศแพ็คเกจเช่น:

แพ็คเกจ com example.myapp;

เลือกส่วนแพคเกจที่คุณต้องการเปลี่ยนและกดShift + F6 exampleผมเองต้องการเปลี่ยน

ในช่องโต้ตอบคำเตือนเลือกRename packageจากนั้นใส่ชื่อแพ็คเกจที่ต้องการ

2- แท็กเปิดAndroidManifest.xmlและด้านใน<manifest>เปลี่ยนเป็นpackageชื่อแพ็คเกจที่ต้องการ

3- เปิดbuild.gradle(Module: app)และเปลี่ยนเป็นapplicationIdชื่อแพ็คเกจที่ต้องการ


ขอบคุณ. มันค่อนข้างง่ายและตรงไปตรงมา
Ishwor Khanal

3
  1. เลือกตัวเลือก ป้อนคำอธิบายรูปภาพที่นี่

  2. ยกเลิกการเลือกตัวเลือกแพคเกจแพ็คเกจกลางที่ว่างเปล่า

  3. เลือกไดเรกทอรีที่คุณต้องการเปลี่ยน (ฉันเลือก 'crl' แสดงในขั้นตอนที่ 6)
  4. Shift+F6
  5. เปลี่ยนชื่อแพ็คเกจ
  6. การเปลี่ยนชื่อไดเรกทอรี crl เป็น crl1 ป้อนคำอธิบายรูปภาพที่นี่

  7. สุดท้ายคลิกที่ปุ่ม Do Refactor ที่ทำเครื่องหมายในภาพด้านล่างแล้ว ป้อนคำอธิบายรูปภาพที่นี่ ป้อนรหัสที่นี่

  8. หลังจากการเปลี่ยนแปลงเสร็จสิ้น ป้อนคำอธิบายรูปภาพที่นี่


3

โปรดลองขั้นตอนต่อไปนี้:

  1. คลิกที่การตั้งค่าไอคอนรูปเฟืองและยกเลิกการเลือกแพ็คเกจแพ็คเกจกลางที่ว่างเปล่า
  2. ตอนนี้เราสามารถเห็นแต่ละโฟลเดอร์แพ็คเกจแยกออกเป็นส่วน ๆ
  3. ตอนนี้คลิกขวาที่โฟลเดอร์แพ็คเกจแรก >>> refactor >>> เปลี่ยนชื่อ
  4. ตอนนี้คำเตือนจะปรากฏขึ้น แต่คุณไปข้างหน้าและคลิกเปลี่ยนชื่อแพคเกจ
  5. หลังจากนั้นให้ป้อนชื่อโดเมนของคุณสำหรับชื่อแพ็คเกจ
  6. คลิกที่ 'Do Refactor'
  7. ตอนนี้มันได้เปลี่ยนชื่อโดเมนแพคเกจของแอพ ตอนนี้เปลี่ยนนามสกุลโดเมนและชื่อโฟลเดอร์แอพตามความต้องการของคุณ
  8. ตอนนี้เปิด build.gradle (โมดูล: แอพ) ใน Gradle Scripts ที่นี่เปลี่ยนรหัสแอปพลิเคชันและคลิกซิงค์ทันที

******* ในที่สุดก็เสร็จ ******


3
  1. กดCtrl+ Shift+R

  2. แทนที่แพ็คเกจเก่าด้วยแพ็คเกจใหม่

  3. คลิกขวาที่ชื่อแพ็คเกจ

  4. Refactor> Renameและเปลี่ยนชื่อเป็นใหม่


3

ctrl+ Shift+ Rได้ทำงานเสมอสำหรับฉัน เพียงแค่เลือกreplace allAll Files


นี่จะไม่อัปเดตไดเรกทอรีและจะไม่พบคลาสใด ๆ ของคุณเลย
john ktejik

3
  • ส่วนแรกประกอบด้วยการสร้างแพคเกจใหม่ภายใต้javaโฟลเดอร์และเลือกแล้วลากไฟล์ที่มาทั้งหมดของคุณจากนี้old package new packageหลังจากนั้นคุณต้องremaneใช้ชื่อแพคเกจใน Android manifestกับชื่อของแพ็คเกจใหม่

  • ในขั้นตอนที่ 2 และนี่คือสิ่งที่คุณต้อง do.You จำเป็นต้องเปลี่ยนชื่อแพ็กเกจเดิมในapplicationIdภายใต้โมดูลในสตูดิโอของคุณหุ่นยนต์นอกเหนือไปจากการเปลี่ยนชื่อแพคเกจในbuild.gradle manifestดังนั้นโดยสรุปคลิกbuild.gradleที่ด้านล่าง "AndroidManifest.xml" และปรับเปลี่ยนค่าของapplicationIdชื่อแพคเกจใหม่ของคุณ

  • buildจากนั้นที่ด้านบนมากภายใต้ โครงการของคุณแล้วclean rebuildมันควรจะดีจากที่นี่


3

วิธีที่ดีที่สุดคือการเขียนชื่อแพ็คเกจใหม่และลากจากชื่อแพ็คเกจเก่า

วิธีที่สองหากคุณคลิกRefactorจากนั้นย้ายตัวเลือกจากนั้นเปลี่ยนชื่อแพคเกจจะเปลี่ยนชื่อชื่อแพ็กเกจแล้วสร้างใหม่

ใน Build.gradle คุณต้องทำด้วยตนเองถ้าคุณ Refactor มันจะไม่เปลี่ยนชื่อใน Build.gradle

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