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

22
我正在使用Kotlin、Databinding和Room开发Android项目。有时构建会失败,并显示一个错误消息,但没有提供确切的信息,只是说可能与注释处理器有关系(这可能有很多原因...)。
以下提供一个简短的示例:
org.gradle.workers.internal.DefaultWorkerExecutor$ WorkExecutionException:在执行org.jetbrains时发生故障
更多堆栈跟踪行...
Caused by: org.jetbrains.kotlin.kapt3.base.util.KaptBaseError:注释处理过程中出现错误
更多堆栈跟踪行...
at org.jetbrains.kotlin.kapt3.base.Kapt.kapt(Kapt.kt:45) ......32 more 因此,找到错误的原因需要花费时间回溯并猜测哪一行最有可能包含有关实际出错原因的有用信息。
那么问题来了:如何显示完整的堆栈跟踪?
我尝试将“-Xmaxerrs 500”设置为我的“build.gradle”,如下所示:https://kotlinlang.org/docs/reference/kapt.html#java-compiler-options以及我在 Stack Exchange 上找到的各种变体(抱歉,不记得具体是哪些了)。没有任何区别。也许我把代码块放错地方了?(尝试过在模块级别、android -> defaultConfig -> kapt 中)

https://dev59.com/RVIH5IYBdhLWcg3wRrnK - user14648661
2个回答

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

20
很不幸,这并没有改变任何事情 :( - tarbos
1
我在执行此操作后看到了更多的输出。 - Matt Mc
它对我有效。 启用后,我发现Dagger编译错误。 - Milton
1
在我苦思冥想了数小时后,这个方法终于奏效了。发现输出中有一个愚蠢的问题。 - Rishabh876
这对我也起作用了。通过详细日志,我能够确定问题所在。谢谢。 - Felipe Porge Xavier

2
在我的情况下,问题显然出现在我Dao函数中添加的'suspend'关键字上。我可能缺少依赖项或存在某些依赖项问题。
例如,我更改了以下内容:
    @Query("select * from election_table")
**suspend** fun getAllElections():LiveData<List<Election>>

    @Query("select * from election_table")
fun getAllElections():LiveData<List<Election>>

房间版本:=“2.2.5”

更新:是的 - 问题在于确保您具有以下依赖项:

 //Room
implementation "androidx.room:room-runtime:$version_room"
kapt "androidx.room:room-compiler:$version_room"
implementation "androidx.room:room-ktx:$version_room"

我错过了最后一个。再次添加了suspend关键字,现在编译得非常好!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接