为什么我在 android studio 中没有看到硬编码文本的任何 lint 错误

Why am I not seeing any lint error for hard coded text in android studio

在阅读 Lint 工具时,我尝试在 android studio 中的一个简单项目上对其进行测试。刚刚创建了一个空 activity 的新项目。 mainActivity 的 xml 如下所示:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

和Mainactivity.java:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

当我尝试 运行 分析>>检查代码>>整个项目时,来自 android 工作室;检查结果显示如下:inspection result image

它不应该也显示用于 TextViews 文本的硬编码文本 ("Hello World!") 的警告吗?

因为我没有收到警告,所以我尝试在设置>>编辑器>>检查中更改严重级别,如图所示in this image。但是,检查结果还是一样。没有警告或错误。

我哪里错了?

找到一个奇怪的原因。如果我从文本 ("Hello World!") 中移动感叹号,那么它会显示 error/warning。出于某种原因,将感叹号添加到文本后,Lint 不会显示硬编码文本的警告。

发生这种情况是因为字符串 Hello World!a special case:

if (value == "Hello World!") {
    // This is the default text in new templates. Users are unlikely to
    // leave this in, so let's not add warnings in the editor as their
    // welcome to Android development greeting.
    return
}