抑制 "Identifier not allowed in Android"

Suppress "Identifier not allowed in Android"

对于我用 Kotlin 编写的应用程序,我使用带反引号的方法名称进行测试,如下所示:

fun `API login error - don't save token or user`() {

它有效,测试编译和工作没有问题,但 Android Studio 中的 Lint 将这些方法标记为错误消息 Identifier not allowed in Android

有什么方法可以抑制这种情况,使 Lint 检查无误地通过,并且不会在 Android Studio 中用红色下划线标记?

我不确定你是否可以在代码中做到这一点,但你至少可以在 IDE 中禁用它。转到 "File | Settings | Editor | Inspections | Illegal Android Identifier" 并禁用此检查。

根据 wnc_21 的回答,我发现它可以针对特定范围禁用,在我的情况下,它仅用于测试,所以就是这样。

使用:

@file:Suppress("IllegalIdentifier")

在文件顶部

我用

@Suppress("IllegalIdentifier")

例子

@Suppress("IllegalIdentifier")
class SignUpTest {

有一种方法可以从 Lint 配置文件中抑制 Lint 检查,而不是使用 @Suppress 注释每个文件或任何内容。请注意,它只影响从命令行执行的构建。我仍然没有弄清楚如何让 Android Studio 使用此配置文件进行代码检查。

Android Gradle 插件在其 DSL.

中的 lintOptions 下有 lintConfig 属性

它允许您指定 Lint 配置 xml 文件的路径。该功能已记录 here

Lint 配置文件示例:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <!-- Disable the given check in this project -->
    <issue id="IllegalIdentifier">
        <ignore path="**/androidTest/**" />
        <ignore path="**/test/**" />
    </issue>
</lint>

这样,代码检查配置成为代码库的一部分,并在所有开发人员之间共享。

当我打算将新测试 class 添加到 test 包但错误地将其添加到 androidTest 时出现此错误。

将 class 移动到正确的 test 包后问题得到解决。