自定义 Lint 检查未运行

2024-03-17

我目前正在尝试编写我正在处理的自定义 lint 检查。我创建了一个单独的 java 项目并将其作为 jar 包含在内。

我的问题是,无论如何,在分析我的代码库时,似乎我的自定义检查没有运行。

我已经包含了一个注册表

class MyIssueRegistry : IssueRegistry() {
override val issues: List<Issue>
    get() = listOf(MyIssues.ISSUE_PATTERN)
}

还有探测器

class MyIssueDetector : Detector(), Detector.UastScanner {

    override fun getApplicableUastTypes() = listOf(UClass::class.java)

    override fun createUastHandler(context: JavaContext) =
        MyIssueDetector(context)

    class MyIssueDetector(private val context: JavaContext) : UElementHandler() {
        override fun visitClass(node: UClass) {
            context.report(MyIssues.ISSUE_PATTERN, context.getNameLocation(node), "This is just a test")
        }
    }
}

我还添加了attributes("Lint-Registry-v2": "com.pathto.lint.MyIssueRegistry")到我的 java 项目的 gradle 并将其包含在我的应用程序 gradle 中lintChecks project(":lint")

据我所知这个主题 - 我的代码应该在每次读取类时抛出警告,但 lint 检查没有运行。我缺少一个步骤吗?


首先,检查您的 lint.jar 是否放置在正确的路径上。我的路径是~/.android/lint/lint.jar。

然后执行命令 '$ANDROID_HOME/tools/bin/lint --show | grep '您的问题名称'' 检查您的自定义 lint 是否已附加。

然后您可以将一些日志放入自定义 lint 实现中,就像使用“System.out.println()”一样
希望这可以帮助你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义 Lint 检查未运行 的相关文章

随机推荐