程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了将 Android kotlin 版本升级到 1.5.0 在构建时抛出错误消息大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决将 Android kotlin 版本升级到 1.5.0 在构建时抛出错误消息

开发过程中遇到将 Android kotlin 版本升级到 1.5.0 在构建时抛出错误消息的问题如何解决?下面主要结合日常开发的经验,给出你关于将 Android kotlin 版本升级到 1.5.0 在构建时抛出错误消息的解决方法建议,希望对你解决将 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 更改并尝试更新它们。 对我来说,房间和匕首造成了问题,我已将其升级到最新版本,现在没有问题:

    @H_607_56@房间到:2.3.0 @H_607_56@匕首到:2.35.1
,

如果其他答案对您没有帮助,尤其是如果您使用的是 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,请注明来意。