gpt4 book ai didi

android - 为什么必须在 Android 中明确指定 $kotlin_version?

转载 作者:太空宇宙 更新时间:2023-11-03 10:58:27 25 4
gpt4 key购买 nike

在 Android studio 项目中支持 Kotlin 需要两个依赖项:kotlin-gradle-pluginProject/build.gradlekotlin-stdlib-jdk7Project/app/build.gradle ,并且这两个需要有相同的版本。常见的方法似乎是使用单个 kotlin_version当 IDE 更新其 Kotlin 插件时,您必须手动更改该变量——从 Android Studio 3.1.3 开始,如果您使用 $variable,IDE 仍然无法自动更新依赖项。作为版本。

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

在非 Android Kotlin 项目中,即那些使用 apply: 'kotlin' 的项目而不是 apply plugin: 'kotlin-android' , 可以简单地 omit the version来自 kotlin-stdlib-jdk7依赖项,然后将自动从插件中解析。

implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7'

这甚至适用于 Android 项目中的非 Android 模块。我的问题是,为什么这在 Android 模块中是不可能的?为什么不能 $kotlin_version简单地被省略?如果该功能自 Kotlin 1.1.2 以来就存在,为什么即使在 Kotlin 1.2.51 上它仍然会在 Android 上导致编译错误?或者实际上是否可以这样做,如果可以,如何做到?

最佳答案

事实上,这不是 Kotlin 特有的,而是与 Gradle 如何管理依赖关系有关。

参见 https://docs.gradle.org/current/userguide/declaring_dependencies.html关于如何在 Gradle 中指定依赖项的版本。

在这种情况下

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

是设置版本的标准方式。由于此版本号对于多个依赖项是相同的,因此它在变量中声明,以便轻松更改所有 Kotlin 库的版本。

implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7'

使用自 Gradle 4.6 起可用的依赖约束。它用于相同的目的。可以在中央位置设置库的版本,这样可以将版本保持在一个通用值,而无需遍历大型项目的所有 gradle.properties 文件。

关于android - 为什么必须在 Android 中明确指定 $kotlin_version?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51314544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com