【问题标题】:locating and removing unreferenced values in strings.xml在 strings.xml 中查找和删除未引用的值
【发布时间】:2015-11-04 16:34:32
【问题描述】:

虽然 eclipse 会告诉我未引用的变量、类和导入,但它不会告诉我资源文件中是否有未使用的值。

从翻译的角度来看,能够删除所有未使用的内容将非常有用。

有没有可以做到这一点的工具?

【问题讨论】:

    标签: java android eclipse


    【解决方案1】:

    选项 1

    注意:不适用于直接在 xml 中引用的资源和通过反射加载的 id。

    考虑到所有资源的生成 ID 都位于您的 R.java 文件中,这应该可以使用 Eclipse Core Tools

    菜单选项如下所示:

    选项 2

    Android Unused Resources 是一个 Java 应用程序,它将扫描您的 未使用资源的项目。未使用的资源不必要地占用 空间,增加构建时间,并使 IDE 的自动完成变得混乱 列表。

    http://code.google.com/p/android-unused-resources/

    【讨论】:

    • 但是这样能识别出XML中直接引用的那些String资源吗?
    • 是的,这很好。这看起来是一个很好的工具(如果我真的可以让它工作的话),但我需要它还包括我的数组资源和布局,这些资源和布局也引用了字符串。
    • 只需下载它并将jar复制到您的eclipse插件文件夹中......就是这样。
    • 是的,我这样做了,但没有在您的屏幕截图中获得菜单选项,然后去寻求帮助并尝试使用调试选项和选项文件进行各种操作。这很可能是 Win7/64 问题。
    • 奇怪...也许这也值得一试:code.google.com/p/android-unused-resources
    【解决方案2】:

    我能想到的最简单(也是最慢)的方法是一个一个地删除它们,然后让 eclipse 重建你的项目。如果它产生错误,那么你就知道它被使用了,否则,你没有它也没关系。

    【讨论】:

    • 我想过这个,但是构建我的项目大约需要 20 秒(在美好的一天),这意味着它需要几个小时才能完成。另外,如果布局文件中只有一个引用,是否还会出现编译错误?
    • 我想你会的。另一种方法取决于您安装的工具(在较小程度上,您正在运行的操作系统)。可以编写一个使用 find 和 grep 来确定字符串是否在 .java 或 .xml 文件中的任何位置使用的 bash 脚本,然后您可以知道该字符串的名称没有在任何地方引用,并执行以上建议对数据的较小子集而不是所有内容进行处理。这只是一个想法
    【解决方案3】:

    Android Lint 是你的朋友。在 ant 项目中,只需键入

    ant lint
    

    在这种情况下,它会发出UnusedResource 警告。

    【讨论】:

      猜你喜欢
      • 2013-02-16
      • 2023-03-30
      • 2012-09-24
      • 1970-01-01
      • 1970-01-01
      • 2015-03-06
      • 1970-01-01
      • 1970-01-01
      • 2021-02-17
      相关资源
      最近更新 更多