您的位置:首页 > 移动开发 > Android开发

我的Android进阶之旅------>解决Android Studio全局搜索搜不到结果的问题

2016-05-18 21:12 591 查看

1、问题描述

今天使用Android Studio时,想通过使用快捷键Ctrl+Shift+F来进行全局搜索指定字符串,如下图所示:想搜索字符串”码农偷懒了”,



打开string.xml文件,里面明明有字符串”码农偷懒了”,但是就是搜索不到结果,如下图所示



错误提示如下所示:

No occurrences of '码农偷懒了' found in Project with mask '*.xml *.java' Find Options... (Ctrl+Shift+F)


2、问题解决

根据错误提示,重新使用快捷键Ctrl+Shift+F打开搜索面板,并进入【File name filter】选项,去掉【File mask(s)】菜单项的勾选。如下图所示:



去掉勾选后,如下图所示:



然后点击【Find】按钮,就出现了搜索结果,如下图所示:



这样通过搜索字符串找到了字符串定义的地方,然后就可以找到该字符串在其他的地方引用了。

使用快捷键Ctrl+Shift+F,搜索关键字”code_undisposed”,如下图所示:



搜索结果如下所示:



当然,此时也可以使用Alt+F7快捷键进行搜索,将鼠标放在

码农偷懒了

这一行,然后按Alt+F7快捷键,就可以搜索了,如下图所示:



上面的快捷键都是Android Studio默认的快捷键,如下所示:



有时候,一个很小的疏忽就会导致完全达不到你的要求,很艹蛋!下次注意不要随意勾选【File mask(s)】选项!

3、自定义搜索Scope

博客更新这么久了,今天有个读者灵魂颤抖吧 回复了我,回复内容如下:

1楼 灵魂颤抖吧 3小时前发表 [回复]

自定义过滤build下的intermediates和generated文件夹中的所有文件:

Options(Tab)- Scope - Custom(勾选) - 右侧三个点(点击)-

加号(点击)– local – 过滤内容:!file:intermediates/&&!file:generated/



让我通过该回复,又学会了一项新技能:【自定义搜索Scope】

通过 灵魂颤抖吧 读者的提示,搜索关键字【!file:intermediates/&&!file:generated/】来到了【Stack Overflow】网站,地址如下所示:

https://stackoverflow.com/questions/22973939/ignore-r-java-fies-in-find-results

按照上面的方法,使用下面几步,即可实现自定义搜索Scope.

第一步:在Android Studio 中,使用快捷键【Ctrl+Shift+F】打开搜索框,如下所示:



第二步:在【Scope】区域,选择【Custom】选项,然后点击右侧的【…】按钮,如下所示:



点击完后,弹出如下所示的弹框



第三步:点击【+】按钮,在【Add scope】中选择【Local】



然后填写名称为自定义的【ExcludeIntermediates】,如下所示:



点击【OK】按钮,然后弹出如下所示的框,



第四步:在【Pattern】文本框中,我们要填写自定义的过滤规则,然后点击【OK】按钮保存。

例如,我们填写规则

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




定义该规则后,imtermediates目录以及generated目录下的文件将不被搜索。



如下图所示,使用自定义的Scope之后,搜索build\intermediates\manifest\androidTest\debug\AndroidManifest.xml文件中的字符串“ Tests for com.xtc.watch” 搜索不到了



将Scope改为原来的【Whole project】即可搜索的到,如下所示:





4、更多自定义搜索Scope规则

学会了上面的基本规则之后,你想怎么定义Scope规则都可以,下面介绍一个其他人定义的规则,如下所示:



规则代码如下

!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


该规则,

忽略R.java文件

忽略所有的通过 Android Annotations生成的java文件 (i.e. *_.java files)

包含strings.xml, dimens.xml, styles.xml, attrs.xml, colors.xml files

包含所有的layout/* path 目录下的xml文件

参考链接

https://stackoverflow.com/questions/22973939/ignore-r-java-fies-in-find-results



作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!

转载请保留原文地址:http://blog.csdn.net/ouyang_peng

如果本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行打赏。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: