【问题标题】:Conflicting jetified-kotlin-reflect dependency冲突的jetified-kotlin-reflect依赖
【发布时间】:2019-06-15 21:31:40
【问题描述】:

当我构建我的 Android 项目时,我收到以下消息:

w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
    /home/janek/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.10/4d147bf43060dc43d61b096e24da1e67dfe0c032/kotlin-stdlib-jdk7-1.3.10.jar (version 1.3)
    /home/janek/.gradle/caches/transforms-1/files-1.1/kotlin-reflect-1.0.6.jar/beba9d201a205f30041b70982540014d/jetified-kotlin-reflect-1.0.6.jar (version 1.0)
    /home/janek/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.11/4cbc5922a54376018307a731162ccaf3ef851a39/kotlin-stdlib-1.3.11.jar (version 1.3)
    /home/janek/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.11/d8b8e746e279f1c4f5e08bc14a96b82e6bb1de02/kotlin-stdlib-common-1.3.11.jar (version 1.3)
w: Some runtime JAR files in the classpath have an incompatible version. Consider removing them from the classpath

但我不知道为什么 jetified-kotlin-reflect 甚至在那里,因为它不是依赖项,甚至没有出现在 androidDependencies 中。

你知道它是从哪里来的或者我该如何解决这个错误吗?

【问题讨论】:

  • 这看起来像一个警告。你能告诉我们你的build.gradle文件吗?
  • 我有大约 15 个 build.gradle 文件,你确定这会有所帮助吗?这些都没有引用 kotlin-reflect,所有的 kotlin 库都是 1.3 版。

标签: java android gradle kotlin


【解决方案1】:

如果你像类文字语法一样使用reflection features,我猜kotlin插件会自动添加kotlin-relfection.jar。

在 Java 平台上,使用反射功能所需的运行时组件作为单独的 JAR 文件 (kotlin-reflect.jar) 分发。这样做是为了减少不使用反射功能的应用程序所需的运行时库大小。如果您确实使用反射,请确保将 .jar 文件添加到项目的类路径中。

我通过显式添加修复了警告

implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"

到我的 build.gradle。

【讨论】:

  • 我现在在使用 gradle 7 和 kotlin 1.5.31 时遇到了同样的问题,尽管没有明确实施反射,但相同的包(反射 1.4.31)比其他包更旧。解决了这个问题,但它似乎是插件中的一个错误?
猜你喜欢
  • 1970-01-01
  • 2014-06-11
  • 2011-03-12
  • 2019-12-24
  • 2021-12-14
  • 2022-01-24
  • 2021-12-03
  • 2013-06-24
相关资源
最近更新 更多