【发布时间】:2022-06-26 03:31:29
【问题描述】:
自从我升级到 Kotlin 1.6.10 和 room 到 2.4.0 后,我遇到了一个错误。错误不清楚,所以我真的不知道从哪里开始寻找。
任务 ':app:kaptDebugKotlin' 执行失败。 执行 org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction 时发生故障 java.lang.reflect.InvocationTargetException(没有错误信息)
尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。运行 --scan 以获得完整的见解。
我猜我的实体中有一些不兼容的东西,但是当降级时,一切都完美无缺。我的问题是:我怎样才能发现问题所在?对我来说,这些错误非常模糊。
当我运行 gradlew --scan 时,它说我的 JVM 仍然是 1.8,但我已经到处更新到 11。
编辑: 通过更改 org.gradle.java.home 属性,我设法使用 11 强制我的 Gradle。现在它给了我以下错误:
A failure occurred while executing
org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
(No message provided)
(No message provided)
java.lang.IllegalArgumentException: <nulltype> cannot be represented as a Class<?>.
<nulltype> cannot be represented as a Class<?>.
EDIT2:
我在另一个 StackOverflow 线程中读到,我应该将 AS 更新到我所做的最新补丁。不幸的是,这没有帮助。
EDIT3:
似乎房间版本(2.4.1)也是问题的一部分。当降级除房间之外的所有东西时,它仍然是一个错误。如果我尝试使用 kotlin 1.5.31、room 2.3.0 & compose 1.0.5 运行,它运行良好。
EDIT4:
升级到房间 2.4.2 并添加 KSP 后,我收到以下错误:
[ksp] [MissingType]: Element 'be.tradecom.kraken.objects.parts.Part' references a type that is not present - be.tradecom.kraken.objects.parts.Part
在搜索此错误时,我只得到 1 个遇到相同问题并通过升级到 Kotlin 1.6.0 修复它的人的结果。我尝试从 1.6.10 降级到 1.6.0,但是 compose 1.1.0 需要 1.6.10。
我删除了第一个错误的大部分内容,因为我达到了字符数限制,我认为这不再重要了。
【问题讨论】:
-
你在gradle中使用annotationProcessor依赖吗??
-
stackoverflow.com/questions/62131564/… 你可能会觉得这很有帮助。
-
这帮助我摆脱了 --scan 中的 1.8 错误。现在我得到了这个结果:scans.gradle.com/s/aa5y7o2dtps62
-
Room v2.5.0-alpha02、kotlin v1.6.21 和 jetpack compose 1.2.0-beta03 存在类似问题
标签: android-studio gradle android-room