我当前正在尝试编写我正在处理的自定义棉绒检查。我创建了一个单独的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中。
这个问题很常见-每当读取类时,我的代码都应该发出警告,但不会运行皮棉检查。我错过了一步吗?
答案 0 :(得分:0)
首先,检查您的lint.jar是否放置在正确的路径上。我的路径是〜/ .android / lint / lint.jar。
然后执行命令'$ ANDROID_HOME / tools / bin / lint --show | grep'您的问题名称',以检查您的自定义皮棉是否已附加。
然后可以将一些日志放入自定义的lint实现中,就像使用“ System.out.println()”一样
希望这可以帮助你。