Kotlin扩展函数突然需要api等级24

我只注意到这个lint错误:调用需要Api级别24(当前最小值是19)java.util.map#foreach当我在Kotlin的MutableMap上使用扩展函数forEach。 我写这行的时候并没有发生,但现在呢。 而即时通讯没有看到我的其他机器上的这个错误。

你使用的不是kotlin.collections.MutableMap.forEach

你使用的东西似乎是Java 8中的Map.forEach

阅读这篇文章: http : //blog.danlew.net/2017/03/16/kotlin-puzzler-whose-line-is-it-anyways/

这似乎是一个常见的错误。

Java 8得到了Android API 24级的很好的支持。

简而言之,不要使用像map.forEach { t, u -> Log.i("tag", t + u) }
使用像map.forEach { (t, u) -> Log.i("tag", t + u) }
(不是两个参数,只有一个参数是一对)

Java 8中支持Map.forEach,并且它在Android中的支持从API 24开始