Android 官方支持哪个 Kotlin 版本?

Posted

技术标签:

【中文标题】Android 官方支持哪个 Kotlin 版本?【英文标题】:Which Kotlin version is officially supported by Android? 【发布时间】:2018-07-11 04:59:52 【问题描述】:

我最近在 Kotlin 1.2.10 中开发了一个应用程序,在 android Studio 中遇到了错误:

Call requires API level 24 (current min is 21): java.util.Map#forEach

参考以下代码:

val map = mutableMapOf<String, String>()
map.forEach  s1: String, s2: String -> print("something") 

所以问题是,我怎么知道我使用的 Kotlin 方法(在 Android Studio 之外,例如 IntelliJ)将在某些 Android API 级别上可用?

我找不到有关 Android 支持哪个 Kotlin 版本(以及哪个 API 级别)的信息。

【问题讨论】:

【参考方案1】:

只要你愿意,任何 Kotlin 都兼容 Android

implementation "org.jetbrains.kotlin:kotlin-stdlib" // or
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7"

这个带有两个参数回调的 forEach 方法来自 Java 8,它只在 API 24 之后才可用。这也是为什么在 API 24 以下不能使用的原因

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

您正在寻找的是 Kotlin 扩展函数,它看起来像这样:

map.forEach  (key, value) -> // One parameter of type Map.Entry<String, String>
    // Do something

【讨论】:

以上是关于Android 官方支持哪个 Kotlin 版本?的主要内容,如果未能解决你的问题,请参考以下文章

如何看待 Kotlin 成为 Android 官方支持开发语言?

如何看待 Kotlin 成为 Android 官方支持开发语言

如何看待 Kotlin 成为 Android 官方支持开发语言?

如何看待 Kotlin 成为 Android 官方支持开发语言?

Kotlin vs Scala:程序员应该选哪个来代替Java?

学Java的颤抖吧!Kotlin成为Android官方开发语言