如何删除Android Studio中所有配置的未使用的字符串资源?

问题描述 投票:30回答:8

我找到了一个未使用的字符串资源,如:

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

然而,在strings.xmlvaluesvalues-af等文件夹中的不同values-be文件中有几十个不同语言的文件。

我一定错过了一些不知道在Android Studio中做任何事情的事情,除了一个接一个地手动修改它。

tl; dr如何为所有配置删除未使用的字符串资源?

android android-studio android-resources
8个回答
21
投票

它现在可以在Android Studio中使用。在Lint检查后,您会在右侧看到一个选项删除所有未使用的资源!

enter image description here

要跨所有区域设置文件删除单个字符串资源,可以使用“翻译编辑器”。 1.右键单击res目录以打开翻译编辑器。 2.选择“显示所有键”选择器,然后选择“按文本过滤”。提供要删除的资源的名称。 3.选择资源,然后单击“ - ”按钮


25
投票

识别所有未使用的资源:

  • 打开菜单>分析>按名称运行检查...
  • 选择“未使用的资源”
  • 确保选中整个项目,然后按确定。
  • 仔细查看清单。您始终可以使用“重新运行”按钮重新运行检查。

Android Studio(v 1.0)中没有非常简单的方法可以删除所有语言环境的资源字符串。但是,您可以搜索和替换文件。幸运的是,在大多数情况下,翻译文件只使用一行,因此效果非常好。

在Android Studio中:

  • 在源代码管理中没有待处理的更改开始(如果出现问题,可以更轻松地检查和退出)。
  • 打开菜单>编辑>查找>替换路径...
  • 在Text中找到:.*name="obsoletestring".*\n
  • 在替换为:(空)
  • 检查正则表达式
  • 按“查找”按钮。
  • 检查结果。如果没问题,请按“所有文件”按钮。
  • 您可能必须手动删除res / values / strings.xml中的注释。
  • 确保您的项目仍然构建。
  • 在源代码管理中查看项目的差异,以确保更改真正符合您的意图......

5
投票

在IDE支持出现之前,这些内容将起作用:

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

3
投票

在Android Studio 2.3中,可以删除所有未使用的资源。

  • 在res / values /目录中打开任何* .xml
  • 右键单击任何项​​目的名称
  • Refactor -> Remove Unused Resources...

2
投票

不幸的是,你必须手动完成。

检查这个answer,了解你究竟应该做些什么来使用Eclipse摆脱它们

如果你正在使用Android Studio在整个应用程序中找到它们,也可以手动删除..检查这个answer


2
投票
  1. 菜单 - >分析 - >按名称运行检查 - >未使用的资源
  2. 从结果中选择未使用的所有字符串资源。 右键单击突出显示的行,然后选择“使用@SuppressLint(Java)抑制或使用工具:忽略(XML)”。这将添加属性工具:忽略所有字符串文件中的所有字符串。
  3. 菜单 - >查找 - >替换路径 要查找的文本:^。*?tools:ignore =“UnusedResources”。*?\ n 勾选正则表达式框 使用范围:自定义 打开自定义范围编辑器并添加模式:file [app]:src / main / res // strings.xml 找 等等。

0
投票

事实上,Android Lint应报告未使用的资源,但您也可以尝试使用this nice插件。


0
投票

请注意,REMOVE UNUSED RESOURCES命令无法将以编程方式访问的资源识别为已使用的资源(例如getIdentifier(..)等)。因此,如果您以这种方式访问​​资源,那么使用该命令风险很大!!

© www.soinside.com 2019 - 2024. All rights reserved.