次のような未使用の文字列リソースが見つかりました。
<string name="obsoletestring">my name is null!</string>
ただし、数十のファイル、異なる言語、異なるstrings.xml
ファイルはvalues
、values-af
、values-be
などのフォルダ。
Android Studioで1つずつ手動で変更する以外に、これを行う方法を知らない何かを逃したに違いありません。
tl; dr すべての構成の未使用の文字列リソースを削除するにはどうすればよいですか?
未使用のリソースをすべて識別するには:
Android Studio(v 1.0)ですべてのロケールのリソース文字列を削除する簡単な方法はありません。ただし、ファイル内で検索および置換できます。幸いなことに、翻訳ファイルは単一のほとんどの場合、このように動作します。
In Android Studio:
.*name="obsoletestring".*\n
IDEがサポートされるまで、これらの行に沿った何かが機能します:
find -name strings.xml|xargs -rd\\n sed -ri '/"string_to_delete"/d'
Android Studio 2.3では、未使用のリソースをすべて削除できます。
Refactor -> Remove Unused Resources...
結果から、未使用のすべての文字列リソースを選択します。
メニュー->検索->パスで置換
実際、Android Lintは未使用のリソースについて報告する必要がありますが、 this Niceプラグインで試すこともできます。
REMOVE UNUSED RESOURCESコマンドは、プログラムでアクセスされたリソースを使用済みリソース(getIdentifier(..)など)として認識できないことに注意してください。したがって、その方法でリソースにアクセスする場合、そのコマンドを使用することは非常に危険です!!