当前位置: 首页 > 知识库问答 >
问题:

将Android kotlin版本升级至1.5.0,在构建时抛出错误消息

申昌勋
2023-03-14

运行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时有问题吗?

共有3个答案

柳仲卿
2023-03-14

在我的情况下,匕首引起了问题。更新依赖关系已解决。

implementation 'com.google.dagger:dagger:2.37'
kapt 'com.google.dagger:dagger-compiler:2.37'
左丘曦
2023-03-14

这是由于Dagger使用了旧版本的kotlinx元数据jvm。看见https://youtrack.jetbrains.com/issue/KT-45885

将匕首更新为2.34

张高澹
2023-03-14

我今天也遇到了同样的问题。用stacktrace运行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

必须将Moshi更新到1.12.0,这就成功了。

这是Moshi1.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-元数据-jvm库不兼容并更新它。

 类似资料:
  • 我一直在寻找flyway版本1中的迁移方法。x到3。x(即从Google.com.googlecode.flyway到org.flywaydb)在提到要首先迁移到2.3版的地方,但没有提到如何迁移?有没有一种直接的方法可以做到这一点,或者我必须从后端做一些事情。 我的数据库已经有数据,我不能删除数据库。注意:Flyway 1. X到2. X对table有重大更改。 编辑 我已经将flyway的ma

  • 我已将springfox升级到2.7.0版(和2.9.2): 并尝试启动应用程序,我收到下一个错误: 组织。springframework。豆。工厂未满足的依赖异常:创建名为“documentationPluginsBootstrapper”的bean时出错,该bean在URL[jar:file:..jar!/lib/springfox-spring-web-2.7.0.jar!/springfo

  • 将 升级到 版时出现错误: 无法加载文件或程序集“WebGrease,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT异常:0x80131040) 源错误: 如何解决此错误。

  • 我使用flutter upgrade--force从v1.91.hotfix 6升级flutter。 然后我构建了一个示例“层” - 颤振运行,它显示了此消息,而如果我切换到1.91,一切都构建正常 找不到名为“堆栈跟踪”的选项。 颤振博士-v G:\新\new_exam [√] Android toolchain -为Android设备开发(Android SDK版本29 . 0 . 2)And

  • 我的grails应用程序在生产中使用h2嵌入式数据库,最近我决定将其从grails 2.3升级到2.4。在开发模式下运行良好,但在部署到tomcat后,我提到了一些问题,例如,用户计数有问题,ApplicationContext无法用getBean加载我的服务等。我检查了日志,发现了以下错误: org.springframework.beans.factory。BeanCreationExcept

  • 我正在做一个简单的部分更新场景,它适用于Solr的6.x和7.x版本。将Solr和Solrj升级到8.8后,我遇到以下异常: 注意,这与前面关于stackoverflow的问题不同,因为我传递的是简单的整数字段,而在Solr/Lucene端,它被替换。