Kapt 注释处理 - 如何显示完整的堆栈跟踪

Posted

技术标签:

【中文标题】Kapt 注释处理 - 如何显示完整的堆栈跟踪【英文标题】:Kapt annotation processing - how to show full stacktrace 【发布时间】:2020-06-05 00:28:15 【问题描述】:

我正在使用 Kotlin、Databinding 和 Room 开发一个 android 项目。 有时构建会失败并显示一条错误消息,其中不包含有关究竟出了什么问题的信息,除了它与注释处理器有关(可能有很多原因......)。

缩短示例:

org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: 执行 org.jetbrains 时发生故障

[更多堆栈跟踪行]

原因:org.jetbrains.kotlin.kapt3.base.util.KaptBaseError:注释处理时出错

[更多的堆栈跟踪行]

在 org.jetbrains.kotlin.kapt3.base.Kapt.kapt(Kapt.kt:45)​​ ... 32 更多

找到原因,然后意味着耗时回溯我的步骤(可能使用git stash)并猜测,当最后的 32 条隐藏线中的一条似乎可能包含一些关于实际问题的有用信息时。

所以问题是:如何显示完整的堆栈跟踪?

我尝试在我的build.gradle 中设置-Xmaxerrs 500,如此处所示https://kotlinlang.org/docs/reference/kapt.html#java-compiler-options 以及我在SE 上找到的各种变体(抱歉,不记得具体是哪个了)。 没有任何区别。也许我把块放在错误的地方? (尝试模块级别,android -> defaultConfig -> kapt)

【问题讨论】:

***.com/questions/60324017/… 【参考方案1】:

kapt.verbose=true 添加到项目的gradle.properties 文件中。

【讨论】:

不幸的是这并没有改变任何东西:( 这样做后我确实看到了更多输出。 它对我有用。启用后我发现匕首编译错误 经过数小时的挠头后,这对我有用。在输出中发现了一个愚蠢的问题。 它也对我有用。通过详细日志,我能够识别问题。谢谢。

以上是关于Kapt 注释处理 - 如何显示完整的堆栈跟踪的主要内容,如果未能解决你的问题,请参考以下文章

Ruby 异常处理:反向堆栈跟踪顺序

sys.exc_info 在捕获和引发时不跟踪完整的堆栈跟踪?

登录Julia时如何捕获完整的堆栈跟踪信息

如何获取异步执行的完整堆栈跟踪

如何在 Cloudera 中查看完整的异常/错误堆栈跟踪

如何在不向用户显示堆栈跟踪的情况下处理 servlet 过滤器中的错误状态?