为什么我在 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
}
在阅读 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
}