【问题标题】:Ignore R.java files in Find results忽略查找结果中的 R.java 文件
【发布时间】:2014-04-09 21:06:41
【问题描述】:

当我在路径中查找 (Ctrl+Shift+F) 时,我经常在 R.java 文件的“生成代码中的用法”下得到结果。当我搜索我的代码时,我只想这样做:搜索我的代码。不是我的代码生成的文件。

是否可以让查找对话框在结果中不显示任何 R.java 文件?我想要的唯一结果是“发现事件”下的结果

谢谢!

【问题讨论】:

标签: android-studio


【解决方案1】:

Android Studio(如其前身 IntelliJ)允许您定义自定义范围,以帮助您在搜索时排除中间文件。

以下是我用来设置的步骤:

  1. 调出“在路径中查找”对话框(在我的机器上为 Ctrl+Shift+F)。
  2. 在范围区域中,选择自定义单选按钮。然后点击下拉列表右侧的“...”按钮。这将打开 Scopes 对话框。
  3. 单击“范围”对话框左侧的“+”按钮,将弹出“添加新范围”对话框。将其命名为“ExcludeIntermediates”。
  4. 在“模式”字段中,粘贴以下模式并单击“确定”:

    !file:*intermediates*/&&!file:*generated*/
    

此模式不包括 R.java 文件和其他中间文件,例如exploded-aar 中的布局文件和filtered_manifests 文件夹中的AndroidManifest.xml 副本。

【讨论】:

  • 太棒了!这是我一直在寻找的答案,对于一天中多次使用 Ctrl+Shift+F 的人来说,这是最正确的答案。
  • 正确答案,但有点过时了。现在 Android Studio 的 UI 有点不同,所以这个答案帮助我在“Find in path”窗口中找到了 Scope 按钮。
【解决方案2】:

此模式不包括 R.java 文件和其他中间文件,例如exploded-aar 中的布局文件和filtered_manifests 文件夹中的AndroidManifest.xml 副本。

  • 忽略 R.java 文件
  • 忽略所有由 Android Annotations 生成的 *.java 文件(即 *_.java 文件)
  • 包括 strings.xml、dimens.xml、styles.xml、attrs.xml、colors.xml 文件
  • 包括布局/*路径中的所有xml文件

    !file:*intermediates*/&&!file:*generated*/&&file:*java&&!file:R.java&&!file:*_.java||file:*strings.xml||file:*dimes.xml||file:*styles.xml||file:*attrs.xml||file:*colors.xml||file:*layout/*xml&&!file:*build/*xml
    

结合自:

https://stackoverflow.com/a/32238593/1815624

&

https://stackoverflow.com/a/32680493/1815624

【讨论】:

    【解决方案3】:

    要搜索多个模块但忽略 R.java,您可以使用以下掩码 IF 您的项目中没有任何其他单字符文件名:

    ☑ File mask(s): ??*.*
    

    即将结果限制为至少包含 2 个字符 + 任何扩展名的文件名。

    【讨论】:

      【解决方案4】:

      如果您使用的是 Android Studio,实现此目的的一种简单方法是将 Scope 设置为 Directory(而不是 Whole Project)并将此目录设置为您的 src 文件夹 - 因为 R.java 出现在 build/generated它不会出现在那里的结果中。

      【讨论】:

      • 感谢您的回答!这适用于仅包含一个模块的项目。有没有办法用这种方法搜索项目多个模块中的所有src文件夹?
      • 不幸的是,我不知道!如果我们可以在文件掩码中使用正则表达式或表示“非文件名”,我想这很容易,但这似乎是不可能的
      【解决方案5】:

      我在 Android Studio 中使用“自定义范围”来忽略 R.java 文件。其他人描述了如何创建/保存“共享自定义范围”,以后可以将其上传到 git 存储库。我只是要分享我的自定义范围字符串:

      • 忽略 R.java 文件
      • 忽略所有由 Android Annotations 生成的 *.java 文件(即 *_.java 文件)
      • 包括 strings.xml、dimens.xml、styles.xml、attrs.xml、colors.xml 文件
      • layout/*路径中包含所有xml文件

      file:*java&&!file:R.java&&!file:*_.java||file:*strings.xml||file:*dimes.xml||file:*styles.xml||file:*attrs.xml||file:*colors.xml||file:*layout/*xml&&!file:*build/*xml

      【讨论】:

        【解决方案6】:

        正如 Mike Evans 在tweet 中建议的那样,您可以避免项目中所有生成的文件

        您只需要添加一个不包括上述模式的范围:

        【讨论】:

          猜你喜欢
          • 2021-12-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-06
          • 2020-10-26
          • 2021-05-16
          • 2015-03-11
          • 1970-01-01
          相关资源
          最近更新 更多