【问题标题】:Custom Lint check not running自定义 Lint 检查未运行
【发布时间】:2018-08-06 18:22:28
【问题描述】:

我目前正在尝试编写我正在处理的自定义 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")
        }
    }
}

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

AFAIK 这个主题 - 我的代码每次读取类时都应该抛出警告,但没有运行 lint 检查。有没有我遗漏的步骤?

【问题讨论】:

  • 能否附上MyIssues.ISSUE_PATTERN的来源?

标签: android kotlin android-gradle-plugin lint


【解决方案1】:

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

然后执行命令'$ANDROID_HOME/tools/bin/lint --show | grep 'your issue name'' 检查您的自定义 lint 是否附加。

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

【讨论】:

    猜你喜欢
    • 2019-09-25
    • 2017-03-01
    • 2021-03-17
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2018-07-22
    • 2023-03-23
    • 2023-03-29
    相关资源
    最近更新 更多