如何忽略 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。
我一直在阅读有关忽略日志中的硬编码字符串的信息:
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。