Есть ли у меня Kotlin stdlib дважды? - PullRequest
0 голосов
/ 20 марта 2019

в 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"

Далее я также нашел:

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

В1: Как я могу узнать, откуда взялся второй kotlin-stdlib-jdk7? Возможно от стороннего lib?

Q2: Как видите, использовались Kotlin 1.3.21 и 1.3.20. Бьюсь об заклад, 1.3.20 поставляется с другой библиотекой, и это может вызвать проблемы в будущем?

1 Ответ

0 голосов
/ 21 марта 2019

Как видно из его пом , -jdk8 зависит как от -jdk7, так и от kotlin-stdlib, поэтому вы видите и то, и другое.-jdk* артефакты содержат только специфические особенности / расширения JDK 7 и JDK 8 и не приводят к тому, что весь JDK импортируется дважды.

Из doc :

Существуют расширенные версии стандартной библиотеки, в которых добавлена ​​поддержка некоторых функций JDK 7 и JDK 8

Чтобы ответить на вопрос Q2, эта зависимость происходит от другой зависимости.Вы должны быть в состоянии выяснить, откуда он импортируется, запустив gradle dependencies.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...