使用 kotlin 版本“1.4.32”运行我的 Android 项目运行和构建。尝试升级到 kotlin '1.5.0' 并且我的构建抛出:
Execution failed for task ':app:kaptDefaultsDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
> java.lang.reflect.InvocationTargetException (no error message)
Run Code Online (Sandbox Code Playgroud)
我什至不知道从哪里开始寻找。还有其他人在升级到 kotlin 1.5.0 时遇到问题吗?
red*_*t13 58
我今天遇到了同样的问题。运行 gradle build 命令--stacktrace并获得有用的堆栈跟踪,将问题缩小到 Moshi 库。
Caused by: java.lang.IllegalStateException: Could not parse metadata! This should only happen if you're using Kotlin <1.1.
at com.squareup.moshi.kotlinpoet.metadata.KotlinPoetMetadata.readKotlinClassMetadata(KotlinPoetMetadata.kt:70)
at com.squareup.moshi.kotlinpoet.metadata.KotlinPoetMetadata.toImmutableKmClass(KotlinPoetMetadata.kt:50)
at com.squareup.moshi.kotlin.codegen.MoshiCachedClassInspector.toImmutableKmClass(MoshiCachedClassInspector.kt:22)
at com.squareup.moshi.kotlin.codegen.MetadataKt.targetType(metadata.kt:109)
at com.squareup.moshi.kotlin.codegen.JsonClassCodegenProcessor.adapterGenerator(JsonClassCodegenProcessor.kt:136)
at com.squareup.moshi.kotlin.codegen.JsonClassCodegenProcessor.process(JsonClassCodegenProcessor.kt:110)
at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor.process(incrementalProcessors.kt:90)
at org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.process(annotationProcessing.kt:175)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:980)
... 41 more
Run Code Online (Sandbox Code Playgroud)
必须将 Moshi 更新为1.12.0,这才奏效。
这是 Moshi 的更新日志,1.12.0其中提到了 1.5.0 的修复:https : //github.com/square/moshi/blob/master/CHANGELOG.md#version-1120
首次在此处报告时的问题:https : //github.com/square/moshi/issues/1324
另一个在这里提到修复的问题:https : //github.com/square/moshi/issues/1337
所以我建议你运行 gradle build 命令--stacktrace并找出哪个库导致与kotlinx-metadata-jvm库不兼容并更新它。
小智 44
这是由于 Dagger 使用旧版本的kotlinx-metadata-jvm. 请参阅https://youtrack.jetbrains.com/issue/KT-45885
将你的匕首更新为 2.34
Stu*_*lch 18
将我的项目升级到 Kotlin 1.6.0 后,这个问题再次出现。就我而言,这是因为 Moshi JSON 序列化库。他们已经在下一个版本中包含了修复程序。与此同时,我已恢复到 1.5.31。
https://github.com/square/moshi/issues/1433
小智 14
我在将 Kotlin 版本升级到 1.6.10 时遇到了这个问题
\n为了解决这个问题,我必须将 dagger 版本更新到 2.36 或更高版本,我使用的是 2.40.5
\nimplementation "com.google.dagger:dagger:2.40.5\xe2\x80\x9d
kapt "com.google.dagger:dagger-compiler:2.40.5"
查找最新的 dagger 版本 - https://github.com/google/dagger/releases
\nthe*_*vay 13
如果其他答案对您没有帮助,特别是如果您使用的是 Android Studio 的 alpha 或 beta 版本,请确保您使用的是 Android Studio 中嵌入的 JDK。这是我的情况,我确实使用了外部下载的 JDK。
要更改 JDK,请转至下拉列表File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle并进行选择。Embedded JDKGradle JDK
您应该检查哪些依赖项可能依赖于版本 1.5.0 中新的 kotlin 更改,并尝试更新它们。对我来说,房间和匕首引起了问题,我已将其升级到最新版本,现在没有问题:
小智 6
在我的情况下,匕首导致了这个问题。更新依赖项解决了。
implementation 'com.google.dagger:dagger:2.37'
kapt 'com.google.dagger:dagger-compiler:2.37'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8682 次 |
| 最近记录: |