在使用基准文件配置启用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文件。
答案 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来运行命令。 输出显示了许多用于调试问题的有用信息。