在Android构建中配置Lint基准文件时出现Lint基础结构错误

时间:2019-04-22 06:18:21

标签: android lint

在使用基准文件配置启用lint时,出现以下异常。

> Lint infrastructure error
  Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
.........................
.........................
 Caused by: java.lang.IllegalStateException: path must not be null
        at com.android.tools.lint.XmlReporter.writeIssue(XmlReporter.kt:209)
        at com.android.tools.lint.XmlReporter.writeIssues(XmlReporter.kt:113)
        at com.android.tools.lint.XmlReporter.write(XmlReporter.kt:99)
        at com.android.tools.lint.LintCliClient.run(LintCliClient.java:288)

我在模块build.gradle中添加了以下lintOptions

之后,我运行了lintDebug gradle任务。


    android{
        lintOptions {
            baseline file("lint-baseline.xml")
            warningsAsErrors true
            abortOnError true
        }
    }

我希望我的更改在第一次运行时在模块根目录中创建lint-baseline.xml文件,并导致指示创建lint-baseline.xml的构建失败。对于第二次运行,棉绒应读取lint-baseline.xml并禁止显示现有的错误/警告报告。

但是,第一次运行会创建空的lint-baseline.xml,并因Lint基础结构错误而失败。后续运行不会产生Lint基础结构错误,但是由于文件为空,因此比较失败,从而导致错误/警告。

我的应用程序同时具有java和kotlin文件。

4 个答案:

答案 0 :(得分:4)

这可能不是最佳答案,但我尝试将旧的output.json添加到APK目标文件夹中,并尝试构建签名的apk,然后知道该错误,我们必须删除output.json文件。这次,在构建APK之后,它可以正常工作了。

再次在上述日期,上述方法失败,我尝试删除发布文件夹并再次创建APK。这次它起作用了。

答案 1 :(得分:1)

我遇到了同样的问题,删除了“build”和“release”文件夹。不知何故,这对我有用。不知道究竟是什么原因造成的。

答案 2 :(得分:0)

我也遇到了同样的问题并尝试了所有解决方案。后来,我意识到我安装的 Android Studio 的 CSV 插件存在问题。由于我禁用了插件并重新启动了 android studio,所以一切正常。

答案 3 :(得分:0)

如果 lint 进程成功完成,您将获得一个合适的结果 lint 文件。您得到的错误表明 lint 进程在第一次 lint 进程运行中失败。第一次运行后,这些工具只读取空文件来确定基线。根据参考,您需要手动删除文件并再次运行 lint 进程以重新创建它。 有关更多信息,您可以使用 Android Studio IDE 菜单中的“分析>检查代码”或使用命令行和命令:

$ ./gradlew lintDebug

在这两种方式中,您都可以找到 lint-baseline.xml 作为输出的位置

...

Wrote XML report to file:///app/lint-baseline.xml
Created baseline file /app/lint-baseline.xml

注意如果在Android Studio的终端中使用命令行,必须使用Ctrl+Enter来运行命令。 输出显示了许多用于调试问题的有用信息。