Thay đổi hoàn toàn tên gói bao gồm cả miền công ty


81

Giả sử đây là tên gói: package com.company.name. Tôi phải thay đổi companynhư thế nào?

PS Tôi đã thấy cách thay đổi namenhưng không được company. Tôi đang sử dụng Android Studio.


tôi bắt đầu thực hiện một dự án, và tôi cần phải thay đổi companytừ này bằng một từ khác, bởi vì dự án này là dành cho một công ty. và tại sao lại sử dụng phím xóa ?? Ở đâu?
Filip Luchianenco

2
Có thể có bản sao của Gói đổi tên Android Studio
Bo Persson.

Chỉ cần tạo một gói mới, sau đó chọn lớp bạn muốn di chuyển sau đó kéo và thả nó vào gói tạo mới, sau đó cấu trúc lại, công việc này đối với tôi
Manee.OH

Câu trả lời:


48

Bạn có thể làm được việc này:

Thay đổi tên gói theo cách thủ công trong tệp kê khai. Nhấp vào lớp R.java của bạn và nhấn F6 (Refactor-> Move ...). Nó sẽ cho phép bạn di chuyển lớp sang gói khác và tất cả các tham chiếu đến lớp đó sẽ được cập nhật.

tham khảo: Làm cách nào để đổi tên gói android?


48

gói hiện tại: com.company.name

Gói mới: com.mycomapny.name

Các bước: 1) Giả sử bạn đang ở màn hình này được hiển thị bên dưới.

nhập mô tả hình ảnh ở đây

2) Mở ngăn dự án và nhấp vào biểu tượng cài đặt.

3) Bỏ chọn Gói nhỏ gọn rỗng ở giữa.

4) Sau đó, gói của bạn bây giờ được chia thành các phần riêng lẻ như hình dưới đây.

5) nhấp chuột phải vào "công ty" chọn Refactor -> chọn đổi tên -> đổi tên thư mục.

nhập mô tả hình ảnh ở đây

6) Bây giờ "công ty" của bạn đã được thay đổi thành "mycomapny" mới và các thay đổi được phản ánh như thể hiện trong hình dưới đây.

nhập mô tả hình ảnh ở đây

7) Bây giờ thay đổi tên gói trong tệp AndroidManifest.xml.

nhập mô tả hình ảnh ở đây

8) Mở build.gradle cấp ứng dụng và thay đổi tên gói.

nhập mô tả hình ảnh ở đây

9) bạn sẽ gặp lỗi như Không thể giải quyết ký hiệu "R".

10) Xóa dòng gây ra lỗi này và studio sẽ tự động nhập tệp R mới.

11) Nếu bạn có nhiều tệp, hãy sử dụng tùy chọn tìm và thay thế bằng cách nhấn "Cntrl + Shift + R"

Hoặc "Chọn Chỉnh sửa-> Tìm-> Thay thế trong đường dẫn .."

nhập mô tả hình ảnh ở đây

12) chọn Thay thế Tất cả.


31

Điều này làm việc cho tôi, từ https://stackoverflow.com/a/18637004/127434

Một phương pháp hay khác là: Đầu tiên tạo một gói mới với tên mong muốn bằng cách nhấp chuột phải vào thư mục java -> new -> package.

Sau đó, chọn và kéo tất cả các lớp của bạn vào gói mới. AndroidStudio sẽ cấu trúc lại tên gói ở mọi nơi.

Cuối cùng, xóa gói cũ.


Điều này đã hoạt động một phần đối với tôi, nhưng nó không khắc phục được các câu lệnh "import com.company.foo". Tôi đã có thể thực hiện điều sau với một thay thế toàn cục trong thư mục src /.
LarsH

9

Trong Android Studio, bạn có thể làm như sau:

Ví dụ: nếu bạn muốn thay đổi com.example.app thành iu.awesome.game, thì:

  1. Trong ngăn Dự án của bạn, nhấp vào biểu tượng bánh răng nhỏ ( nhập mô tả hình ảnh ở đây)
  2. Bỏ chọn / Bỏ chọn tùy chọn Gói nhỏ gọn rỗng giữa nhập mô tả hình ảnh ở đây
  3. Thư mục gói của bạn bây giờ sẽ được chia thành các thư mục riêng lẻ
  4. Chọn riêng từng thư mục bạn muốn đổi tên và:

    • Nhấp chuột phải vào nó
    • Chọn Refactor

    • Nhấp vào Đổi tên

    • Trong hộp thoại bật lên, nhấp vào Đổi tên gói thay vì Đổi tên thư mục

    • Nhập tên mới và nhấn Refactor

    • Nhấp vào Do Refactor ở dưới cùng

    • Cho phép một phút để Android Studio cập nhật tất cả các thay đổi

    • Lưu ý: Khi đổi tên com trong Android Studio, nó có thể đưa ra cảnh báo. Trong trường hợp đó, hãy chọn Đổi tên tất cảnhập mô tả hình ảnh ở đây

      1. Bây giờ hãy mở Tệp bản dựng Gradle của bạn (build.gradle - Thường là ứng dụng hoặc thiết bị di động). Cập nhật applicationId trong defaultConfig thành Tên gói và Gradle Đồng bộ hóa mới của bạn, nếu nó chưa được cập nhật tự động:nhập mô tả hình ảnh ở đây

      2. Bạn có thể cần thay đổi thuộc tính package = trong tệp kê khai của mình.

      3. Làm sạch và xây dựng lại.

      4. Làm xong! Dù sao, Android Studio cần làm cho quá trình này đơn giản hơn một chút.


8

Giải pháp của @Luch Filip hoạt động tốt nếu bạn chỉ muốn đổi tên gói Ứng dụng. Trong trường hợp của tôi, tôi cũng muốn đổi tên gói nguồn để không nhầm lẫn mọi thứ.

Chỉ cần 2 bước:

  1. Nhấp vào thư mục nguồn của bạn, ví dụ com.company.example> Shift + F6 (Refactor-> Rename ...)> Rename Package > nhập tên bạn muốn.

  2. Truy cập AndroidManifest.xml của bạn, nhấp vào tên gói của bạn> Shift + F6 (Refactor-> Rename ...)> nhập tên tương tự như trên.

Bước 1 sẽ tự động đổi tên thư mục R.java của bạn và bạn có thể tạo ngay lập tức.


Tất cả đều tốt, ngoại trừ tôi nhận được "IOException: không thể đổi tên (...)" cho thư mục nguồn chính. Dự án đơn giản, vừa mới khai trương.
kaay

1
Tôi sử dụng Android studio 2.1.1. Ví dụ cụ thể của tôi, lúc đầu, tôi có info.apachehive.cardview, tôi muốn có net.vyhn.cardview. Bước 1. Chọn mã nguồn dạng cây. Bước 2. Nhấp apachehive, nhấn Shift + F6 Refactor \ Rename thành vyhn. Bước 3. Nhấp vào infothư mục, nhấn Shift + F6 Refactor \ Rename thành net. Tệp AndroidManifest.xmltự động thay đổi. Sau đó, tôi chạy gỡ lỗi, ứng dụng của tôi hoạt động tốt.
Đỗ Như Vy

5

Bốn bước được đưa ra dưới đây:

  1. Nhấp vào thư mục ứng dụng bên dưới:

nhập mô tả hình ảnh ở đây

com.new25.impro. nhấn Shift + F6 {Refactor-> Rename ...} để đổi tên gói và nhấn refactor.

  1. Sau đó, hãy xem màn hình Android. Thay đổi hiển thị ở mọi nơi mà tên gói. Bấm vào refactor.

  2. Chuyển đến mô-đun app:changeid ứng dụng cho bạn giống như tên đã đặt. và nhấp vào sync now.

  3. Bây giờ bạn có thể thay đổi tên gói thành những gì bạn thích.


2

1) Mở thư mục dự án trong Android Studio.
2) Chọn thư mục ứng dụng -> Nhấp chuột phải và chọn cấu trúc lại .
3) Nhấp vào di chuyển. Nó sẽ yêu cầu mà tên gói loại bạn sở hữu tên gói đầy đủ và nó sẽ yêu cầu để tạo ra một gói phần mềm mới có tạo mới tự động nó yêu cầu gradleđến sync.


Có thể bạn có thể thêm một số ảnh chụp màn hình.
Asim KT

2

Để đổi tên tên gói trong Android studio, hãy nhấp vào biểu tượng cài đặt trong phần dự án và bỏ chọn Gói nhỏ gọn giữa trống, sau đó gói sẽ chia thành nhiều tên thư mục, sau đó nhấp chuột phải vào thư mục bạn cần đổi tên, nhấp vào refactor-> Rename-> Gõ tên bạn muốn thay đổi trong -> Refactor -> Refactor Directory, sau đó nhập tệp R.java trong toàn bộ dự án. Làm việc cho tôi.


2

Tôi đã đọc gần như tất cả các câu trả lời. Nhưng tôi nghĩ còn thiếu một cái. Đôi khi tôi có thể sai. Tôi đã sử dụng phương pháp dưới đây và nó hoạt động.

3 phương pháp thay đổi tên gói trong Android Studio

  1. Chọn gói của bạn và nhấp chuột phải , Refactor -> Move .
  2. Chọn Di chuyển gói từ "gói của bạn" sang một gói khác và nhấp vào Ok.
  3. Một hộp thoại mới xuất hiện cho biết Nhiều thư mục tương ứng với gói "gói của bạn" và nhấp vào .
  4. Nhập tên gói mới ngoại trừ cấp hoặc họ. Có nghĩa là Nếu bạn muốn đổi tên gói thành "info.xyz.yourapplication". Sau đó gõ xuống "info.xyz" chỉ để lại "yourapplication".
  5. Nhấp vào Refactor .
  6. Một hộp thoại mới, gói info.xyz không tồn tại. Bạn có muốn tạo ra nó không?. Nhấp vào .
  7. Nhấp vào Do refactor .
  8. Nhấp chuột phải vào gói mới để thay đổi họ. Refactor-> Đổi tên .
  9. Đổi tên gói
  10. nhập tên mới và nhấp vào Do refactor .
  11. Xóa tất cả các thư mục gói cũ.
  12. Thay đổi ApplicationId trong tệp build.gradle và nhấp vào đồng bộ hóa ngay bây giờ

1
Đối với tôi, đây là câu trả lời tốt nhất. Cảm ơn.
Hasan El-Hefnawy 14/10/19

1

Nếu tên miền / gói công ty của bạn rất dài, thì nó sẽ khó hơn.

Đây là liên kết bị thiếu đối với tôi. Bạn cần chọn Tệp dự án -> cài đặt -> sau đó bỏ chọn 'các lớp giữa trống nhỏ gọn.


0

Cách đơn giản nhất để thực hiện việc này là đổi tên thư mục ứng dụng gốc từ com.example.MyAppthành com.newcompanyname.MyNewAppNamevà sau đó thay thế tất cả các lần xuất hiện của đường dẫn cũ thành đường dẫn mới trong bất kỳ IDE nào bạn đang sử dụng.


0

Tôi đã tìm thấy một giải pháp khác để đổi tên một gói trong toàn bộ dự án:

Mở một tệp trong gói. IntelliJ hiển thị đường dẫn của tệp, phía trên tệp đã mở. Trên gói bạn muốn đổi tên: Nhấp chuột phải> Refactor> Đổi tên. Điều này đổi tên gói / thư mục trong toàn bộ dự án.


0

Tôi cũng gặp phải vấn đề tương tự và đây là cách tôi giải quyết: -

Tôi muốn thay đổi tên gói np.com.shivakrstha.userlog thành np.edu.khec.userlog

Tôi đã chọn shivakrstha và nhấn Shift + F6 để đổi tên khúc xạ và đổi tên thành khec .

Cuối cùng, sử dụng cùng một tên gói trong AndroidManifest.xml , applicationId trong build.gradle và đừng quên xây dựng lại Dự án của bạn .

Lưu ý: - Tôi đã cố gắng thay đổi np thành jp , vì vậy tôi đã chọn np và tôi nhấn Shift + F6 để Đổi tên Khúc xạ và đổi tên thành jp , cũng có thể thay đổi người khác.


0

Điều này có thể giúp bạn - 1) Mở một tệp trong gói của bạn. 2) Android Studio hiển thị đường dẫn của tệp, phía trên tệp đã mở. Trên gói bạn muốn đổi tên: Nhấp chuột phải> Refactor> Đổi tên.

nhập mô tả hình ảnh ở đây


0

Tôi đã không thay đổi bất kỳ tên gói nào. Hai bước sau đây hiệu quả với tôi. Sau khi thực hiện các bước sau, ứng dụng đã được cài đặt dưới dạng MỚI, mặc dù có hai ứng dụng có cùng tên gói.

1) Trong build.gradle

applicationId "mynew.mynewpackage.com"

2) Trong android AndroidManifest.xml: Authority = "mynew.mynewpackage.com.fileprovider"


-2

Xin chào, tôi đã tìm thấy cách dễ nhất để làm điều này.

  1. Tạo một dự án mới với tên gói mong muốn
  2. sao chép tất cả các tệp từ dự án cũ sang dự án mới (tất cả tệp trong old.bad.oldpackage => new.fine.newpackage, res => res)
  3. sao chép build.graddle cũ bên trong build.graddle mới
  4. sao chép Tệp kê khai cũ bên trong Tệp kê khai mới
  5. Sao lưu hoặc đơn giản là xóa dự án cũ

Làm xong!


đó không phải là cách đáng tin cậy nhất, chỉ đơn giản là cấu trúc lại thực hiện công việc, hãy tưởng tượng ai đó có dự án phức tạp hơn, có kiểu dáng, kích thước, có thể vẽ, thư viện. Phương pháp này mất rất nhiều thời gian.
Amir Dora.

1
Thật đáng tin cậy nếu bạn làm theo phương pháp của tôi từng bước và rất nhanh nếu bạn làm theo chúng. Chỉ cần quên đi bất kỳ sự phức tạp nào và xem xét bạn đang tạo một dự án mới từ nguồn hiện có, sau đó tôi có thể thấy bạn không biết thư viện kích thước có thể vẽ được ở đâu, tôi sẽ giải thích cho bạn sau đó bạn phải tán thành câu trả lời của tôi. 1- các thư viện ở bên cạnh build.graddle của bạn, vì vậy nếu bạn đã sao lưu tệp, bạn sẽ chỉ cần sao chép nội dung bên trong build.graddle mới 2- các bảng vẽ, kích thước, kiểu đều nằm trong thư mục res. vì vậy nếu bạn đã mở cả hai dự án mới / cũ (gói), bạn chỉ cần kéo / thả
Martin Jovial

Đôi khi refractoring trở nên phức tạp hơn bạn có thể tưởng tượng vì tôi đã cố gắng mà không thành công sau đó sử dụng phương pháp của tôi mỗi thứ làm việc như một nét duyên dáng
Martin Jovial

Vâng, Martin, đồng ý đây cũng là một cách và nó hoạt động. Nhưng nó không phải là phương pháp nhanh nhất. Cảm ơn câu trả lời chi tiết.
Amir Dora.
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.