如何删除Android Studio中所有configuration的未使用的string资源?

我发现了一个未使用的string资源,如:

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

然而,它是在不同语言的数十个文件中,在不同的strings.xml文件中的valuesvalues-afvalues-be values-af等文件夹中。

我一定错过了一些不知道如何在Android Studio中执行此操作的方法,而不是一个一个手动修改它。

tl; dr如何删除所有configuration的未使用的string资源?

Solutions Collecting From Web of "如何删除Android Studio中所有configuration的未使用的string资源?"

现在可以 Android Studio中使用了。 林特检查后,你看到右侧的选项删除所有未使用的资源

在这里输入图像说明

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

识别所有未使用的资源:

  • 打开菜单>分析>按名称运行检查…
  • select“未使用的资源”
  • 确保选中整个项目,然后按确定。
  • 看看清单。 您可以随时使用重新运行button重新运行检查。

Android Studio(v 1.0)中没有真正简单的方法来删除所有语言环境的资源string。 但是,您可以search并replace文件。 幸运的是,翻译文件在大多数情况下只使用一行,所以这个工作非常好。

在Android Studio中:

  • 从你的源代码控制中没有任何待处理的事情开始(如果出现这种情况,可以更容易地检查和退出)。
  • 打开菜单>编辑>查找>replacepath…
  • 在文本中find: .*name="obsoletestring".*\n
  • replace为:(空)
  • 检查正则expression式
  • 按查找button。
  • 检查结果。 如果没问题,请按“所有文件”button。
  • 您可能必须手动删除res / values / strings.xml中的注释。
  • 确保你的项目仍然build立。
  • 看看你的源代码控制项目的差异,以确保变化真的是你想要的…

在IDE支持出现之前,沿着这些方向的东西将起作用:

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

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

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

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

检查这个答案 ,明白你应该怎么做才能摆脱他们使用Eclipse

如果您正在使用Android Studio在整个应用程序中find它们,并手动删除。请检查此答案

  1. 菜单 – >分析 – >按名称运行检查 – >未使用的资源
  2. 从结果中select所有未使用的string资源。

    • 右键单击突出显示的行并select“Suppress with @SuppressLint(Java)或工具:忽略(XML)”。 这将为所有string文件中的所有string添加属性工具:忽略。
  3. 菜单 – >查找 – >replacepath

    • 要查找的文本:^。*?tools:ignore =“UnusedResources”。*?\ n
    • 勾选正则expression式框
    • 使用范围:自定义
      • 打开自定义作用域编辑器并添加pattern:file [app]:src / main / res // strings.xml
    • 等等。

事实上,Android Lint应该报告未使用的资源,但你也可以试试这个漂亮的插件。

请注意,REMOVE UNUSED RESOURCES命令无法将编程访问的资源识别为已使用的资源(如getIdentifier(..)等)。 所以,如果你这样访问资源,使用这个命令是非常危险的!