我有两次 Kotlin stdlib 吗?

Do I have Kotlin stdlib twice?

在Android工作室3 gradle -> --> 任务 --> android --> android依赖项:

> 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
....

在我的应用程序模块中 build.gradle 我有:

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

Furtheron,我还发现:

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的来源?可能来自第三方库?

Q2:如您所见,使用了Kotlin 1.3.21和1.3.20。我敢打赌 1.3.20 带有另一个库,这会导致未来出现问题吗?

正如您从 its pom 中看到的那样,-jdk8 取决于 -jdk7kotlin-stdlib,这就是您同时看到两者的原因。 -jdk* 工件仅包含 JDK 7 和 JDK 8 特定 features/extensions,不会导致整个 JDK 被导入两次。

来自doc

There are extended versions of the standard library that add support for some of the features of JDK 7 and JDK 8

要回答问题 2,该依赖关系来自另一个依赖关系。您应该能够通过 运行 gradle dependencies.

找出它是从哪里导入的