我有两次Kotlin stdlib吗?

时间:2019-03-20 14:12:58

标签: gradle kotlin android-gradle build.gradle

在Android Studio 3中 gradle->->任务-> 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
....

在我的应用程序模块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的来源?可能来自第三方库?

第二季度:如您所见,使用了Kotlin 1.3.21和1.3.20。我敢打赌1.3.20附带了另一个库,这会导致将来出现问题吗?

1 个答案:

答案 0 :(得分:0)

its pom中可以看到,-jdk8同时取决于-jdk7kotlin-stdlib,这就是为什么您同时看到两者的原因。 -jdk*工件仅包含JDK 7和JDK 8特定的功能/扩展,不会导致整个JDK导入两次。

来自doc

  

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

要回答Q2,该依赖关系来自另一个依赖关系。您应该可以通过运行gradle dependencies来查找从哪里导入。