【问题标题】:Kotlin plug-in adds kotlin-stdlib by defaultKotlin 插件默认添加 kotlin-stdlib
【发布时间】:2021-07-25 06:22:30
【问题描述】:

在许多 android 项目中,我观察到这个 kotin stdlib 依赖项被添加到 Gradle 文件中。我还观察到kotlinkotlin-android 插件也默认添加了它。

我假设可以避免手动添加它?还是有什么不好的地方?

org.jetbrains.kotlin:kotlin-stdlib:${versions.kotlin}

我也相信

android {
  ...
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
  kotlinOptions {
    jvmTarget = "1.8"
  }
}

compileOptions 可以安全地从 100% kotlin 应用程序中删除。

使用kotlinOptions.jvmTarget="11" 有一个缺点,就字节码生成和与其他jdk 版本的字节码兼容性而言。

【问题讨论】:

    标签: android kotlin gradle


    【解决方案1】:

    我假设可以避免手动添加它?或者有没有 缺点?

    https://kotlinlang.org/docs/gradle.html#dependency-on-the-standard-library

    它没有缺点,如果您想手动添加它并且不希望插件下载它 - 在gradle.properties 文件中将此插件kotlin.stdlib.default.dependency=false 属性设置为 false。

    就条款而言,使用 kotlinOptions.jvmTarget="11" 有一个缺点 字节码生成和字节码与其他jdk的兼容性 版本。

    它需要AGP 7.0+ 才能为 API 级别 29 及更低级别的应用程序脱糖,而将 jvmVersion 定位到 8 只需要 AGP 3.0+。

    否则,字节码相同。

    compileOptions 可以安全地从 100% kotlin 应用程序中删除。

    Android 项目不是 100% Kotlin,有 BuildConfig.java 之类的生成文件。

    compileOptions 应该在那里,在 100% Kotlin 模块中可以避免。

    【讨论】:

      猜你喜欢
      • 2018-02-07
      • 2018-10-24
      • 2022-12-21
      • 1970-01-01
      • 2019-08-09
      • 1970-01-01
      • 2018-04-23
      • 2023-03-03
      相关资源
      最近更新 更多