Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android Studio中找到我的项目中的所有硬编码字符串_Android_Internationalization_Android Studio - Fatal编程技术网

如何在Android Studio中找到我的项目中的所有硬编码字符串

如何在Android Studio中找到我的项目中的所有硬编码字符串,android,internationalization,android-studio,Android,Internationalization,Android Studio,我需要在Android Studio(beta)0.84中查找并提取我的项目中的所有硬编码字符串。 我需要一个静态分析工具,比如findbug,它可以一次为我完成这项工作,并允许我单步遍历每条消息,将字符串提取到资源文件中。如果整个过程是自动化的,那就更好了 在Android Studio(beta)0.84中,文件/Setting/FindBugs IDEA将I18N显示为Reporting选项卡下的一个选项。 但我就是不知道如何让它工作 感谢您的建议。进入“分析>按名称运行检查…”,然后键入

我需要在Android Studio(beta)0.84中查找并提取我的项目中的所有硬编码字符串。 我需要一个静态分析工具,比如findbug,它可以一次为我完成这项工作,并允许我单步遍历每条消息,将字符串提取到资源文件中。如果整个过程是自动化的,那就更好了

在Android Studio(beta)0.84中,文件/Setting/FindBugs IDEA将I18N显示为Reporting选项卡下的一个选项。 但我就是不知道如何让它工作

感谢您的建议。

进入“分析>按名称运行检查…”,然后键入“硬编码文本”。在整个项目中运行该命令,您将获得一个检查结果面板,该面板将显示硬编码文本实例


您还可以转到Android Studio>首选项>检查>硬编码文本,并指定其具体运行方式,以及哪些(如果有)特殊情况被排除在检查之外。

如果您只想在所有布局文件中查找所有硬编码字符串,可以通过运行-

vinayak@vinayak-osx:layout $ grep -n "android:text=\"" * | grep -v "@string"
注释-
1. <代码>grep不能在windows上使用
2.首先
cd
到项目的
layout
dir
3.kcoppock的答案很好,但它花费了太多的时间,正如和其他投票建议我的那样:我将我的评论转换为一个答案,因此:

自Android Studio 1.2.2以来,在

“分析>按名称运行检验”=>“硬编码字符串”。

我使用了它,它在当前版本中似乎比“硬编码文本”(只检查xml文件)更可靠

如图所示

在Windows中使用Ctrl+Shift+F组合键到处搜索,同时显示预览

对Windows使用Ctrl+F组合在当前文件中搜索

对Windows使用Shift+Shift(双Shift)组合来搜索项目的项目文件


旧版本可能不可用。

对于Windows平台,我发现最好的方法是:

您可以使用此快捷方式
Ctrl
Alt
Shift
I
并搜索

硬编码文本

在搜索栏中

您可以选择要在其中搜索硬编码字符串的适当模块,它将为您提供所有字符串的列表


对我来说最有效的方法是使用regex搜索整个项目:

android:text=“[a-z]

要在这些kotlin/java类中查找:

[.]text=“[a-z]

[.]setText(“


别忘了点击上图末尾的.*蓝色按钮

效果非常好!谢谢。顺便问一句,有没有工具可以使用基于文本生成的资源id自动将字符串提取到values.xml文件中?这将是一个很大的帮助。然后,您可以直接将资源id名称引用到shorter。我不知道自动,但我相信如果你突出显示其中一个字符串并点击Enter选项,你会得到一个自动提取该字符串的选项,但你必须手动键入名称。+1 Android Studio的一个非常酷的功能。有人找到了从结果中排除Android.util.Log消息的方法吗?(大约95%的结果!)供参考:Android Studio 1.2.2在“按名称运行检查”=>“硬编码字符串”中添加了一个新选项。在当前版本中,它似乎比“硬编码文本”更可靠。如@PAD所示,您应该将其作为答案编写。硬编码文本仅返回xml文件。ty:)请注意,
硬编码文本
检查返回
.XML
文件中的硬编码文本,而
硬编码字符串
检查返回
.java
文件中的硬编码文本。请参阅我在这里对类似问题的回答,我有一个类似的任务,但用于我的flifter项目。上述检查没有带来预期的结果,所以我尝试了一个正则表达式。
“+\Q\E
如果用单引号替换双引号,则会得到单引号内的所有字符串。grep命令工作正常,但添加了如何在命令中忽略数据绑定的方法