我有两次Kotlin stdlib吗?

问题描述 投票:0回答:1

在Android Studio 3 gradle - > - > Tasks - > android - > androidDependecies:

> Task :app:androidDependencies
debug
debugCompileClasspath - Dependencies for compilation
+--- androidx.core:core-ktx:1.0.1@aar
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.21@jar
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.21@jar
....

在我的app模块build.gradle中,我有:

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

此外,我还发现:

debugRuntimeClasspath - Dependencies for runtime/packaging
+--- androidx.core:core-ktx:1.0.1@aar
+--- com.google.android.material:material:1.1.0-alpha04@aar
+--- androidx.appcompat:appcompat:1.1.0-alpha01@aar
+--- androidx.constraintlayout:constraintlayout:1.1.3@aar
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.21@jar
+--- :a_lib
+--- com.github.nisrulz:qreader:2.1.2@aar
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.21@jar
+--- org.jetbrains.kotlin:kotlin-reflect:1.3.20@jar
...

Q1:我怎样才能找到第二个kotlin-stdlib-jdk7的来源?可能来自第三方lib?

Q2:如你所见,使用了Kotlin 1.3.21和1.3.20。我打赌1.3.20带有另一个lib,这可能会导致未来的问题?

gradle kotlin android-gradle build.gradle
1个回答
0
投票

its pom可以看出,-jdk8依赖于-jdk7kotlin-stdlib,这就是你们两个都看到的原因。 -jdk* artefacts仅包含JDK 7和JDK 8特定功能/扩展,并且不会导致整个JDK导入两次。

来自doc

标准库的扩展版本增加了对JDK 7和JDK 8的某些功能的支持

为了回答Q2,这种依赖来自另一种依赖。您应该能够通过运行qazxsw poi找出它的导入位置。

© www.soinside.com 2019 - 2024. All rights reserved.