Sao chép dự án hiện có với tên mới trong Android Studio


100

Tôi muốn sao chép dự án Android của mình và tạo một dự án mới từ các tệp giống nhau chỉ với một tên khác. Mục đích của việc này là để tôi có thể có phiên bản thứ hai của ứng dụng được hỗ trợ quảng cáo trong cửa hàng ứng dụng.

Tôi tìm thấy câu trả lời này ở đây:

Android - sao chép dự án hiện có với một tên mới

Nhưng nó dành cho Eclipse. Làm cách nào để thực hiện việc này trong Android Studio?

Câu trả lời:


66

Các bước trong liên kết bạn đã chỉ định cũng sẽ hoạt động đối với Android Studio. Chỉ cần tạo một bản sao (sử dụng trình quản lý tệp) của toàn bộ thư mục mô-đun và đặt tên mới cho nó. Bây giờ hãy mở nó lên và sử dụng Refactor -> Rename(nhấp chuột phải vào mục bạn muốn đổi tên) để đổi tên mô-đun và gói của bạn.

Xem phần này để biết chi tiết về cấu trúc lại trong IntelliJ / Android Studio.


Windows 10 cho biết đường dẫn tệp quá dài. Tôi có bản cập nhật kỷ niệm và đã làm cho Trình chỉnh sửa chính sách nhóm lừa được đường dẫn tệp dài. Có vẻ như Explorer vẫn chưa thể xử lý các đường dẫn tệp dài. Xem: superuser.com/questions/1114181/…
Andrew S

3
Tôi đã thử điều này, nhưng khi tôi chạy dự án, Android Studio đang ghi đè lên ứng dụng cũ trên thiết bị của tôi. Tôi muốn có cả hai ứng dụng đồng thời trên thiết bị (để thử nghiệm các tab tùy chỉnh của chrome). Làm cách nào để buộc Android Studio có cả hai ứng dụng cùng một lúc trên thiết bị?
Locksleyu

Tôi đã chọn thư mục gói cơ sở và nhấp vào Refactor -> Đổi tên, tôi gặp lỗi với tùy chọn "đổi tên gói", sau đó tôi đã thực hiện thành công tùy chọn "đổi tên thư mục".
Ismail Yavuz

Ngoài ra phải cấu trúc lại và đổi tên tệp de iml !!!, nếu bạn không làm vậy, nó sẽ không hoạt động
JoeCoolman

43

Nếu bạn sử dụng Gradle - đừng quên thay đổi thuộc tính applicationId trong tệp app / build.gradle .


3
Điều này rất quan trọng vì tôi quên để thay đổi applicationId trong file build.gradle và cuối cùng xuất bản một ứng dụng với tên gói sai trên Play Store
wenjiun

Đây là một bình luận hơn là một câu trả lời thực tế.
The Unknown Dev

Đó là chìa khóa!
Denis

39

Như free3dom đã chỉ ra , đây là những gì nên làm:

  1. Tạo bản sao bằng trình quản lý tệp
  2. Chỉnh sửa thủ công build.gradletệp của ứng dụng để thay đổi tên gói (bạn có thể sử dụng trình quản lý tệp).
  3. Chỉnh sửa thủ công AndroidManifest.xmlđể thay đổi tên gói.
  4. Chạy đi gradle sync.
  5. Mở dự án trong Android Studio và cấu trúc lại tên gói.
  6. Chạy đồng bộ hóa gradle một lần nữa.

Điều đó dường như hoạt động mà không có bất kỳ vấn đề nào.


9
Tôi tự hỏi làm thế nào bạn đang thực hiện đồng bộ hóa gradle bên ngoài studio Android
erdomester

1
đã làm theo bước này, nhưng không thực hiện bước # 4, chỉ mở Android Studio và nhập dự án đã sao chép. Cũng đã xóa tệp .iml khỏi dự án đã sao chép vì một dự án mới đã được tạo. làm việc tuyệt vời! cảm ơn!
tối

@nommer bạn .imlđang nói về cái gì ?? tôi có thể tìm một cái tại project/prjectname.imlvà cái khác project/app/app.iml, cái nào phải xóa?
Hirdesh Vishwdewa

@Veeru bạn có thể giải thích bước thứ 5 được không ??
Hirdesh Vishwdewa

@HirdeshVishwdewa câu hỏi hay! tôi đã làm nó một thời gian trước đây mà tôi không thể nhớ, nhưng tôi đoán nó là dự án / * IML.
nommer

31

Nếu bạn đang sử dụng phiên bản Android Studio mới nhất, bạn có thể để nó hỗ trợ bạn trong việc này.

Lưu ý: Tôi đã thử nghiệm điều này chỉ trong Android Studio 3.0.

Thủ tục như sau:

  1. Trong chế độ xem dự án (điều này đi kèm với ảnh chụp và cấu trúc ở bên trái màn hình), chọn Dự án thay vì Android .
    Tên dự án của bạn sẽ là phần trên cùng của cây (cùng với các thư viện bên ngoài).
    Chọn dự án của bạn rồi đi tới Refactor -> Copy....
    Android Studio sẽ hỏi bạn tên mới và nơi bạn muốn sao chép dự án. Cung cấp như nhau.

  2. Sau khi sao chép xong, hãy mở dự án mới của bạn trong Android Studio.
    Các gói sẽ vẫn dưới tên dự án cũ.
    Đó là các gói lớp Java, ID ứng dụng và mọi thứ khác được tạo bằng tên gói cũ.
    Chúng ta cần thay đổi điều đó.
    Trong giao diện dự án, chọn Android .
    Mở thư mục con java và chọn gói chính.
    Sau đó nhấp chuột phải vào nó và chuyển đến Refactorsau đó Rename.
    Android Studio sẽ đưa ra cảnh báo cho bạn biết rằng nhiều thư mục tương ứng với gói mà bạn sắp cấu trúc lại.
    Bấm vào Rename packagekhông Rename directory .
    Sau bước này, dự án của bạn bây giờ hoàn toàn dưới tên mới.

  3. Mở tệp res / giá trị / string.xml và thay đổi tên của dự án.
  4. Đừng quên thay đổi ID ứng dụng của bạn trong "Gradle Build Module: app".
  5. Bước cuối cùng là dọn dẹp và xây dựng lại dự án, nếu không, khi cố gắng chạy dự án của bạn, Android Studio sẽ cho bạn biết rằng nó không thể cài đặt APK (nếu bạn đã chạy dự án trước đó).
    Vậy Build -> Clean projectthì Build -> Rebuild project.
    Bây giờ bạn có thể chạy dự án nhân bản mới của mình.

Bước 4 là những gì tôi cần để triển khai không thành công, dự án đã sao chép sau khi chỉ sao chép thư mục mà tôi nghĩ
Jim Factor

2
Quan trọng: Nếu bạn đang sử dụng dịch vụ google play. Ngoài ra, hãy đảm bảo cập nhật tên gói trong tệp google-services.json.
Gihan Gamage

Cảm ơn câu trả lời này! Một bổ sung: Tôi cũng cập nhật rootProject.name trong settings.gradle.
alexx

16

Mục đích của việc này là để tôi có thể có phiên bản thứ hai của ứng dụng được hỗ trợ quảng cáo trong cửa hàng ứng dụng.

Hiện tại, cách tốt nhất để làm điều đó là không sao chép dự án.
Bạn có thể làm điều đó bằng cách sử dụng các hương vị khác nhau trong build.gradletệp của mình .

 productFlavors {
        flavor1 {
            applicationId = "com.example.my.pkg.flavor1"
        }
        flavorAdSUpport {
            applicationId = "com.example.my.pkg.flavor2"
        }
  }

Bằng cách này, bạn chỉ có một bản sao của các tệp và bạn có thể xử lý sự khác biệt một cách dễ dàng.


14

Đây là sự kết hợp giữa câu trả lời của nt.bas và bước 9 của câu trả lời của Civic với các ví dụ trực quan vì tôi đã mất một lúc để tìm hiểu ý định của mình vì tôi mới sử dụng Android Studio. Nó đã được thử nghiệm trong Android Studio 3.2.1.

  1. Mở dự án bạn muốn sao chép trong Android Studio. (Trong ví dụ này, tên dự án cũ là test5và tên dự án mới là test6)

  2. Trong ngăn tổng quan về tệp bên trái, hãy nhấp vào: Dự án (nơi hiện có thể nói là android).

hình0

  1. Nhấp chuột phải vào dự án trong ngăn trình khám phá tệp và nhấp vào cấu trúc lại> nhân bản.

Hình1

  1. Thay đổi "Tên mới" thành tên dự án mới của bạn và nhấp vào ok.

Hình2

  1. Tệp> mở> Cửa sổ mới> Chọn dự án mới của bạn> Mở trong cửa sổ dự án mới. Trong cửa sổ mới, hãy đợi cho đến khi dòng dưới cùng của Android studio hoàn tất / nói: "Gradle Sync Finishing".

16

17

14

  1. Trong ngăn tổng quan về tệp và nhấp vào nút chuột phải (RMB) trên: app.java/ <tên dự án cũ của bạn (không phải dự án thử nghiệm, không phải androidTest, chỉ là tên trống)>

Hình 8

  1. Nhập tên mới của gói của bạn và chọn cả hai dấu kiểm, nhấp vào cấu trúc lại.

Hình9 Hình 10

  1. Ở thanh dưới cùng bên trái, nhấp vào "Do refactor".

Hình 12

  1. Mở ứng dụng / res / giá trị / string.xml và thay đổi tên của dự án cũ (ví dụ: test5) thành tên mới của dự án trong dòng:

    <string name="app_name">test5</string>
    

Hình 3

  1. Mở Gradle scripts / build.gradle (Module: app) và thay đổi dòng thành cùng dòng với tên dự án mới của bạn:% fig4

    applicationId "com.example.a.test5"    
    

hình 4

  1. Một dòng màu vàng sẽ xuất hiện ở đầu ngăn mã của bạn, yêu cầu đồng bộ hóa gradle. Nhấn "đồng bộ hóa ngay bây giờ".

hình 5

  1. trong thanh trên cùng, nhấn xây dựng> Dự án sạch.

Hình 13

  1. Nếu nó cho biết "Đã hoàn thành xây dựng Gradle" ở dưới cùng bên trái, bạn nhấp vào "Xây dựng> Xây dựng lại dự án".

Hình 14

Hình 15

  1. Bây giờ bạn sẽ có thể biên dịch và chạy lại dự án của mình (nếu nó hoạt động ngay từ đầu).

1
câu trả lời chính xác! người ta cũng có thể sử dụng tệp> mới> nhập dự án thay vì mở dự án ở bước 5 ở trên. Đó là những gì đã làm việc cho tôi.
Sasuke Uchiha

8

Tôi đang làm theo các bước sau và nó vẫn hoạt động cho đến nay:

  1. Sao chép và dán thư mục như đã sử dụng.
  2. Mở Android Studio (v3.0.1).
  3. Chọn Mở một dự án hiện có.
  4. Đóng thông báo sẽ bật lên với tiêu đề: "Nhập các dự án Gradle".
  5. Ở bên trái trên Tab Android, đi tới: app -> java -> chọn thư mục đầu tiên (thư mục dự án của bạn)
  6. Refactor => Đổi tên ... (Shift + F6)
  7. Đổi tên Gói, Chọn cả hai tùy chọn - Đặt tên thư mục mới bằng chữ thường.
  8. Do Refactor
  9. Chọn: Đồng bộ dự án với tệp Gradle trên thanh công cụ.
  10. Xây dựng => Dự án sạch
  11. Đi tới ứng dụng -> res -> giá trị -> string.xml và thay đổi tên ứng dụng ở dòng thứ 2.

Hơn nữa, nếu bạn sử dụng bất kỳ API dịch vụ nào của Google, như Maps, Firebase, v.v. Hãy nhớ xóa các tệp có tham chiếu tên gói cũ (như google_services.json trong ứng dụng / src). Vui lòng tham khảo điều này để biết toàn bộ quy trình.
varun

3

Phụ lục của gitbook Thực hành khóa học về nguyên tắc cơ bản dành cho nhà phát triển Android bao gồm các bước để sao chép và đổi tên một dự án hiện có:

https://google-developer-training.gitbooks.io/android-developer-fundamentals-course-practicals/content/en/append_utilities.html#copy_project


Đối với tôi rất hiệu quả với Android Studio 3.3, với một dự án phức tạp có nhiều mô-đun và phụ thuộc. Cảm ơn.
nat101

1
Liên kết đó nằm ở chân cuối cùng của nó: "Trang web này sẽ bị xóa vào ngày 31 tháng 7 năm 2019."
Peter Mortensen

3

Khi cấu trúc lại tên gói trong Android Studio, bạn có thể cần phải nhấp vào bánh răng nhỏ ở bên phải của gói / android / project / etc - điều hướng và bỏ chọn 'gói trống nhỏ gọn ở giữa' để xem từng phần của tên gói như một thư mục riêng. Sau đó, đối với các thư mục riêng lẻ làm refactor.

Điều này rất quan trọng nếu bạn cần thay đổi tất cả các phần của tên gói. Ví dụ: từ com.example.originalproject đến org.mydomain.newproject. Nếu không, hoạt động refactor / rename sẽ chỉ cho phép bạn thay đổi "originalproject" thành "newproject" và nó sẽ không thay đổi "com.example". Có một video hay cho thấy điều này: https://www.youtube.com/watch?v=dMK-RBVLeIY


2

Khi bạn sao chép dự án của mình, bạn cũng sẽ cần phải xóa các tệp bản dựng trung gian còn sót lại ban đầu (someActivity $ 4.class) khỏi các thư mục C: ... \ AndroidStudioProjects (project_name) \ app \ build \ constructor \ class \ release .... Nếu không, bạn gần như chắc chắn sẽ gặp lỗi xây dựng cho dự án mới nếu bạn cố gắng biên dịch dự án đã sao chép. Tái cấu trúc sẽ không giải quyết được điều này.


2

Tôi đã thử từ câu trả lời nt.bascâu trả lời gnyrfta hoạt động tốt cho tôi.

Trích dẫn câu trả lời của nt.bas :

Nếu bạn đang sử dụng phiên bản Android Studio mới nhất, bạn có thể để nó hỗ trợ bạn trong việc này.

Lưu ý: Tôi đã thử nghiệm điều này chỉ trong Android Studio 3.0.

Thủ tục như sau:

  1. Trong chế độ xem dự án (điều này đi kèm với ảnh chụp và cấu trúc ở bên trái màn hình), chọn Dự án thay vì Android .
    Tên dự án của bạn sẽ là phần trên cùng của cây (cùng với các thư viện bên ngoài).
    Chọn dự án của bạn rồi đi tới Refactor -> Copy....
    Android Studio sẽ hỏi bạn tên mới và nơi bạn muốn sao chép dự án. Cung cấp như nhau.

  2. Sau khi sao chép xong, hãy mở dự án mới của bạn trong Android Studio.
    Các gói sẽ vẫn dưới tên dự án cũ.
    Đó là các gói lớp Java, ID ứng dụng và mọi thứ khác được tạo bằng tên gói cũ.
    Chúng ta cần thay đổi điều đó.
    Trong giao diện dự án, chọn Android .
    Mở thư mục con java và chọn gói chính.
    Sau đó nhấp chuột phải vào nó và chuyển đến Refactorsau đó Rename.
    Android Studio sẽ đưa ra cảnh báo cho bạn biết rằng nhiều thư mục tương ứng với gói mà bạn sắp cấu trúc lại.
    Bấm vào Rename packagekhông Rename directory .
    Sau bước này, dự án của bạn bây giờ hoàn toàn dưới tên mới.

  3. Mở tệp res / giá trị / string.xml và thay đổi tên của dự án.
  4. Bước cuối cùng là dọn dẹp và xây dựng lại dự án, nếu không, khi cố gắng chạy dự án của bạn, Android Studio sẽ cho bạn biết rằng nó không thể cài đặt APK (nếu bạn đã chạy dự án trước đó).
    Vậy Build -> Clean projectthì Build -> Rebuild project.

Cho đến thời điểm này, bạn chỉ đổi tên toàn bộ tên dự án của bạn . Để đổi tên tên bao bì, bạn cần làm theo câu trả lời gnyrfta được mô tả là:

Khi cấu trúc lại tên gói trong Android Studio, bạn có thể cần phải nhấp vào bánh răng nhỏ ở bên phải của gói / android / project / etc - điều hướng và bỏ chọn 'gói trống nhỏ gọn ở giữa' để xem từng phần của tên gói như một thư mục riêng. Sau đó, đối với các thư mục riêng lẻ làm refactor.


Tái bút: Nếu bạn đang gặp

Không thể hoàn tất phiên: INSTALL_FAILED_INVALID_APK: Tách lib_slice_0_apk đã được xác định nhiều lần

Chỉ cần xóa thư mục xây dựng của appmodule và Xây dựng lại dự án!

Điều này sẽ khắc phục sự cố!


2

Tôi đang sử dụng Android 3.3 và đó là cách nó hoạt động với tôi:

1 - Chọn chế độ xem dự án

2 - Nhấp chuột phải vào tên dự án, nằm trong thư mục gốc của dự án và chọn tùy chọn refactor -> copy, nó sẽ nhắc bạn với một cửa sổ để chọn tên mới.

3 - Sau bước 2, Android sẽ tạo một dự án mới cho bạn, bạn phải mở dự án mới đó với tên mới

4 - Thay đổi tên của ứng dụng trong "string.xml", nó nằm trong "app / res / values ​​/ string.xml"

Bây giờ bạn có nó, cùng một dự án với một cái tên mới. Bây giờ bạn có thể muốn thay đổi tên của gói, nó được mô tả theo các bước sau

(tùy chọn) Để thay đổi tên của gói chính

5 - Vào "app / java", sẽ có ba thư mục trùng tên, một chính, một (androidTest)và a (test), nhấp chuột phải vào thư chính và chọn format -> rename, nó sẽ nhắc bạn với cảnh báo rằng có nhiều thư mục tương ứng với gói đó , sau đó nhấp vào "Đổi tên gói". Chọn một tên mới và nhấp vào cấu trúc lại. Bây giờ, ở dưới chế độ xem mã, đây sẽ là bản xem trước của trình tái cấu trúc, nhấp vào "Thực hiện tái cấu trúc"

6 - Đi tới tùy chọn "xây dựng", nhấp vào "Dự án sạch", sau đó "Xây dựng lại dự án".

7 - Bây giờ đóng dự án và mở lại một lần nữa.


1
Cuối cùng, một giải pháp không mất 20 phút! Làm việc lúc đầu thử không có lỗi lạ. Đối với bước 5, tôi chỉ cần cấu trúc lại-> đổi tên gói của mình.
Snowman

2

Chuyển đến thư mục nguồn chứa dự án của bạn.

  1. Sao chép dự án và quá khứ và thay đổi tên.
  2. Mở Android Studio và làm mới.
  3. Đi tới ->Settings.gradle.
  4. Bao gồm ':your new project name '

2

Yêu cầu và thử nghiệm trên Android Studio 3.5

Đảm bảo rằng dự án cũ của bạn hoạt động bình thường với thư viện studio android hiện có của bạn.

  1. Sao chép thư mục dự án và đổi tên thư mục cho tên dự án mới, ví dụ như Bramara
  2. Mở dự án mới hiện có của bạn bằng Android Studio 3.5. Sau khi mở dự án hoàn tất, Điều hướng đến 1: Dự án -> Dự án. Bạn có thể thấy dự án của mình chỉ có hai thư mục trỏ đến thư mục dự án mới và thư mục dự án cũ. Đóng dự án của bạn.
  3. Chỉnh sửa appl.iml trên thư mục dự án mới -> ứng dụng -> appl.iml bằng trình soạn thảo văn bản. Thay thế tất cả tên dự án cũ thành Tên dự án mới.
  4. Mở lại dự án mới của bạn. Điều hướng đến 1: Dự án -> Dự án. Bạn có thể thấy dự án của mình chỉ có một thư mục.
  5. Điều hướng đến 1: Dự án -> Gói. nhấp chuột phải vào thành phần của bạn -> Refactor -> Đổi tên.
  6. Một thông báo Cảnh báo sẽ bật lên. Đảm bảo rằng tất cả các thay đổi sẽ áp dụng cho thư mục dự án mới! Sau đó, chọn Đổi tên gói, ví dụ: com.dedetok.bramara.
  7. Điều hướng đến 1: Dự án -> Android. Mở ứng dụng -> tệp kê khai -> AndroidManifest.xml. Sửa Hoạt động ứng dụng thành tên pakage mới. Thay đổi Tên ứng dụng của bạn thành một tên mới.
  8. Mở Gradle Scripts -> build.gradle (Module: ứng dụng), thay đổi applicationId của bạn thành dự án mới, ví dụ: com.dedetok.bramara và đồng bộ dự án.
  9. Làm sạch và xây dựng lại dự án mới của bạn.
  10. Dự án mới của bạn đã sẵn sàng để chỉnh sửa / thay đổi.

Lưu ý: nếu không tìm thấy hoạt động đang chạy adb, hãy chỉnh sửa Cấu hình Run / Debug của bạn. Mô-đun phải trỏ đến ứng dụng mô-đun, ví dụ: ứng dụng.


Ở bước 7, tôi không thể tìm thấy ứng dụng-> tệp kê khai. Vì vậy, tôi đã mở Project-> Project và từ thư mục src, tôi đã mở tệp kê khai. Studio đã yêu cầu đồng bộ hóa để chỉnh sửa tệp và sau đó đã OK
makkasi 22/11/19

1

Cách DỄ DÀNG NHẤT (và chắc chắn là nhanh nhất) yêu cầu WINRAR, 7zip hoặc phần mềm lưu trữ tương tự:

  1. Tìm thư mục dự án trong windows explorer - nhấp đúp để mở thư mục này.

  2. Tạo một thư mục mới và đặt tên là "Backup".

  3. Khi vẫn ở trong thư mục dự án, hãy chọn tất cả các tệp / thư mục, ngoại trừ thư mục "sao lưu".

  4. Nhấp chuột phải và chọn "thêm vào kho lưu trữ" hoặc "tạo kho lưu trữ" (lệnh sẽ khác nhau tùy thuộc vào phần mềm lưu trữ của bạn)

  5. Đặt tên cho kho lưu trữ và nhấp vào ok.

  6. Di chuyển kho lưu trữ này vào thư mục "Sao lưu".

Bạn đã hoàn tất - để mở kho lưu trữ sao lưu, hãy mở thư mục "Sao lưu" và nhấp chuột phải vào tệp sao lưu. Chọn "Giải nén" hoặc tạo một thư mục mới để giải nén tệp và nhấn "ok", sau đó mở dự án như bạn thường làm từ Android Studio, v.v.


0

Tôi gặp sự cố với điều này sau:

https://google-developer-training.github.io/android-developer-fundamentals-course-con Khái-v2/append/append-utilities/appcharge-utilities.html

trên phiên bản Android Studio: 3.3.2

cho đến khi tôi giết tệp .idea / workspace.xml.

$ cp -rv Testcopysource/ TestCopyDest
$ rm TestCopyDest/.idea/workspace.xml
$ stdio.sh & # Run Android Studio on Linux

Trước khi thực hiện việc đó, Android Studio sẽ vẫn trỏ đến thư mục nguồn ban đầu và tất cả các tên đổi đều được áp dụng cho các tệp nguồn gốc (trong Testcopysource trong ví dụ của tôi ở trên).


0

Kể từ tháng 2 năm 2020, đối với Android Studio 3.5.3, câu trả lời đơn giản nhất mà tôi tìm thấy là video này .

Lưu ý 1: Tại 01,24 tab "Tìm" xuất hiện bên dưới. Nhấp vào "Do Refactor" và tiếp tục như trong video.

Lưu ý 2: Nếu bạn có bất kỳ tệp Java / Kotlin nào "Được đánh dấu là Văn bản thuần túy", bạn cần sửa đổi tên gói ở trên cùng theo cách thủ công, tức làpackage com.example.thisplaceneedstobemanuallyupdated

Lưu ý 3: Hãy cẩn thận về các trường hợp chữ cái khi đổi tên, giống như trong video.

Lưu ý 4: Nếu bạn muốn cập nhật tên dự án trên thanh tiêu đề của cửa sổ dự án, hãy sửa đổi tệp " settings.gradlerootProject.name = 'YourProjectName' " bên trong thư mục " Gradle Scripts ".

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.