2015-03-09 32 views
24

Tôi đã tìm thấy một nguồn tài nguyên chuỗi không sử dụng, như:Làm cách nào để xóa tài nguyên chuỗi chưa sử dụng cho tất cả cấu hình trong Android Studio?

<string name="obsoletestring">my name is null!</string> 

Tuy nhiên đó là trong hàng chục tác phẩm, ngôn ngữ khác nhau, trong strings.xml file khác nhau trong values, values-af, values-be, vv thư mục.

Tôi phải bỏ lỡ điều gì đó không biết cách nào để thực hiện việc này trong Android Studio ngoài việc sửa đổi từng bước một.

tl; dr Cách xóa tài nguyên chuỗi chưa sử dụng cho tất cả cấu hình?

+5

'Menu -> Phân tích -> Chạy kiểm tra theo tên -> Tài nguyên chưa sử dụng' – Blackbelt

+2

@Blackbelt đây là cách hay để tìm tài nguyên chưa sử dụng, có cách nào để xóa chúng tự động không? – Apurva

+0

@Apurva perl là một lựa chọn tốt đẹp – Blackbelt

Trả lời

9

Bây giờ có thể bên Android Studio. Sau khi kiểm tra Lint bạn thấy một tùy chọn ở bên phải Xóa tất cả tài nguyên chưa sử dụng!

enter image description here

Để Xóa một nguồn tài nguyên chuỗi duy nhất trên tất cả các file locale, bạn có thể sử dụng "Dịch Editor". 1. Nhấp chuột phải vào thư mục res để mở trình biên tập bản dịch. 2. Chọn bộ chọn "Hiển thị tất cả phím" và chọn "Lọc theo văn bản". Cung cấp tên của tài nguyên mà bạn muốn xóa. 3. Chọn tài nguyên, và click vào "-" nút

+0

Làm thế nào để bạn chạy nó? – FrenchFalcon

+0

Menu "Phân tích" và "Kiểm tra Mã"! – chrisonline

+0

Làm cách nào để xóa một tài nguyên duy nhất trên nhiều tệp miền địa phương? – inder

0

Thực tế, Android Lint sẽ báo cáo về các tài nguyên chưa được sử dụng, nhưng bạn cũng có thể thử bằng một plugin tuyệt đẹp this.

2

Thật không may, bạn phải thực hiện thủ công.

Kiểm tra này answer để hiểu chính xác những gì bạn nên làm gì để thoát khỏi chúng bằng cách sử Eclipse

Nếu bạn đang sử dụng Android Studio tìm thấy chúng trong toàn bộ ứng dụng và cũng có thể loại bỏ bằng tay .. Kiểm tra này answer

20

Để xác định tất cả các nguồn tài nguyên chưa sử dụng:

  • mở menu> Analyze> Run Kiểm tra theo Tên ...
  • Chọn "Tài nguyên chưa sử dụng"
  • Đảm bảo chọn Toàn bộ dự án, sau đó bấm OK.
  • Xem qua danh sách. Bạn luôn có thể chạy lại Kiểm tra bằng nút Chạy lại.

Không có cách nào thực sự dễ dàng trong Android Studio (v 1.0) để xóa chuỗi tài nguyên cho tất cả các ngôn ngữ. Tuy nhiên, bạn có thể tìm kiếm và thay thế trong các tệp. May mắn thay, các tập tin bản dịch chỉ sử dụng một dòng trong hầu hết các trường hợp, vì vậy nó hoạt động khá tốt.

Trong Android Studio:

  • Bắt đầu với không có thay đổi chưa giải quyết trong kiểm soát nguồn của bạn (làm cho nó cách dễ dàng hơn để kiểm tra và trở ra nếu điều này đi sai).
  • mở Menu> Edit> Find> Replace trong Path ...
  • Trong văn bản để tìm: .*name="obsoletestring".*\n
  • Trong Replace with: (trống)
  • Kiểm tra thường xuyên biểu
  • Nhấn nút Find.
  • Kiểm tra kết quả. Nếu được, hãy nhấn nút "Tất cả các tệp".
  • Bạn có thể sẽ phải xóa nhận xét trong res/values ​​/ strings.xml theo cách thủ công.
  • Đảm bảo dự án của bạn vẫn được xây dựng.
  • Hãy xem xét sự khác biệt của dự án trong điều khiển nguồn của bạn để đảm bảo thay đổi là thực sự là những gì bạn dự định ...
5

Cho đến hỗ trợ IDE đến cùng, một cái gì đó dọc theo những dòng sẽ làm việc:

find -name strings.xml|xargs -rd\\n sed -ri '/"string_to_delete"/d' 
+0

Câu trả lời thú vị!Sẽ tốt hơn nếu các thẻ chuỗi nhiều hàng cũng được xử lý. –

+0

Điều này dường như không hoạt động. Lỗi: '' 'xargs: tùy chọn bất hợp pháp - r''' – inder

+0

' -r' (được đặt bí danh là '--no-run-if-empty') có thể không có sẵn trên phiên bản xarg của hệ thống của bạn. Có thể thử hình dạng dài. Theo [changelog] (http://ftp.gnu.org/pub/gnu/findutils/), có vẻ như nó đã có sẵn trong khoảng 27 năm và tôi thấy nó trên phiên bản hệ thống của tôi, v4.7.0-git. –

1
  1. Menu -> Phân tích -> Run Kiểm tra theo Tên -> nguồn lực không được sử dụng
  2. Từ kết quả chọn tất cả các tài nguyên chuỗi không được sử dụng.

    • Nhấp chuột phải vào các hàng được đánh dấu và chọn "Loại bỏ bằng @SuppressLint (Java) hoặc công cụ: bỏ qua (XML)". Điều này sẽ thêm các công cụ thuộc tính: bỏ qua tất cả các chuỗi trong tất cả các tệp chuỗi.
  3. Menu -> Tìm -> Replace trong đường dẫn

    • Text để tìm:.?.?^* Các công cụ: bỏ qua = "UnusedResources" * \ n
    • Tick biểu thức chính quy hộp
    • Sử dụng phạm vi: tuỳ chỉnh
      • biên tập phạm vi mở tùy chỉnh và thêm mẫu: nộp [ứng dụng]: src// main res // strings.xml
    • Tìm
    • vv
3

Trong Android Studio 2.3 nó có thể loại bỏ tất cả các nguồn tài nguyên chưa sử dụng.

  • mở bất kỳ * .xml trong res/giá trị/thư mục
  • Nhấp chuột phải vào tên của bất kỳ mục
  • Refactor -> Remove Unused Resources...
+0

Hãy cẩn thận với điều này. Nó đã xóa ngay cả các tài nguyên vẫn đang được sử dụng. :-( – themarketka

0

Ghi chú rằng lệnh BỎ TÀI NGUYÊN UNUSED không thể nhận ra một nguồn lực lập trình truy cập như một tài nguyên được sử dụng (chẳng hạn như getIdentifier (..), v.v.). Vì vậy, nếu bạn truy cập tài nguyên theo cách đó, sẽ rất nguy hiểm khi sử dụng lệnh đó !!

Các vấn đề liên quan