如何删除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资源?

  • Android Studio - 如何禁用滚动代码预览覆盖?
  • Android Studio不受支持的Gradle插件版本
  • 使用Android Studio重build,同步Gradle和Clean仅一个模块
  • DexException:无法将新的索引65536合并到非巨型指令中
  • Gradle错误:configuration声明未声明的依赖关系
  • 什么“与Gradle文件同步项目”真的意味着什么?
  • 使用Android Studio删除未使用的资源?
  • Android:安装APK时出错
  • 现在可以 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(..)等)。 所以,如果你这样访问资源,使用这个命令是非常危险的!