自定义皮棉检查未运行

时间:2018-08-06 18:22:29

标签: android kotlin android-gradle 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中,并以lintChecks project(":lint")的形式添加到了我的应用gradle中。

这个问题很常见-每当读取类时,我的代码都应该发出警告,但不会运行皮棉检查。我错过了一步吗?

1 个答案:

答案 0 :(得分:0)

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

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

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