大佬教程收集整理的这篇文章主要介绍了将 Android kotlin 版本升级到 1.5.0 在构建时抛出错误消息,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
使用 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)
我什至不知道从哪里开始寻找。还有其他人在升级到 kotlin 1.5.0 时遇到问题吗?
我今天遇到了同样的问题。使用 --stacktrace
运行 gradle build 命令并获得有用的堆栈跟踪,将问题缩小到 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
必须将 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
因此,我建议您使用 --stacktrace
运行 gradle build 命令并找出导致与 kotlinx-metadata-jvm
库不兼容的库并更新它。
这是因为 Dagger 使用了旧版本的 kotlinx-metadata-jvm
。
见https://youtrack.jetbrains.com/issue/KT-45885
将您的匕首更新为 2.34
就我而言,匕首导致了这个问题。 更新依赖项已解决。
implementation 'com.google.dagger:dagger:2.37'
kapt 'com.google.dagger:dagger-compiler:2.37'
,
您应该检查哪些依赖项可能取决于 1.5.0 版中的新 kotlin 更改并尝试更新它们。 对我来说,房间和匕首造成了问题,我已将其升级到最新版本,现在没有问题:
,如果其他答案对您没有帮助,尤其是如果您使用的是 Alpha 版或 Beta 版 Android studio,请确保您使用的是 Android studio 中嵌入的 JDK。这是我的情况,我确实使用了外部下载的 JDK。
要更改 JDK,请转到 File -> SetTings -> Build,Execution,Deployment -> Build Tools -> Gradle
并从下拉列表 Embedded JDK
中选择 Gradle JDK
。
它可能不一定是匕首或 moshi。它可以是任何使用 kapt(kotlin 注释处理器)的库。在 build.gradle 中查找 kapt 并尝试更新使用它的所有内容。
对我来说,这是一个使用旧版 kotlinpoet 的库。
,我在将 Kotlin 升级到 1.5.20 后遇到了这个问题。在 gradle.properties 中添加 kapt.use.worker.api=false 解决问题 checkout https://github.com/google/dagger/issues/2684
以上是大佬教程为你收集整理的将 Android kotlin 版本升级到 1.5.0 在构建时抛出错误消息全部内容,希望文章能够帮你解决将 Android kotlin 版本升级到 1.5.0 在构建时抛出错误消息所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。