如何忽略 Log in Android Studio 中的所有硬编码字符串?

How can I ignore all hard coded strings inside Log in Android Studio?

我一直在阅读有关忽略日志中的硬编码字符串的信息:

Log.d(TAG, "onBindViewHolder: ");

甚至在 Toast 中: Toast.makeText(上下文,"Hardcoded text",LENGTH_SHORT).show();

来源: How can I find all RELEVANT hard coded strings in Android Studio?

在第一个来源中有最好的方法,但有些东西不起作用,那就是:

"adding @SuppressLint("HardcodedNonLog") 到 class 定义的顶部"

有没有办法忽略这些硬编码字符串?

更新
创建一个 Gradle 任务以将“//NON-NLS”添加到每个日志中,这可能是个好方法吗?如果答案是肯定的,我该怎么办?

是的,你可以!

至少使用 Android Studio 3.0 canary 9(未检查以前的版本)。

有"Annotate class 'Log' as @Non_Nls"这样的选项

之后将在路径“$modulename/android/util/annotations.xml”生成文件,内容如下:

<root>
   <item name='android.util.Log'>
       <annotation name='org.jetbrains.annotations.NonNls'/>
   </item>
</root>

使用此文件,此模块将忽略日志中提到的所有字符串。

硬编码文本不是错误,而是警告,可以通过按左 alt+ Enter 来处理。当您按 alt+Enter 时,您只是将该硬编码字符串定义为值文件夹中的 string.xml。