I just noticed this lint error:
Call requires API Level 24 (current min is 19) java.util.map#foreach
when I use the extension function forEach on a MutableMap in Kotlin. This didn't happen when I wrote the line, but its there now. And I'm not seeing this error on my other machine.
What you are using is not
kotlin.collections.MutableMap.forEach
.What you are using seems to be
Map.forEach
in Java 8.Read this article: http://blog.danlew.net/2017/03/16/kotlin-puzzler-whose-line-is-it-anyways/
This seems to be a common mistake.
Java 8 is well-supported from Android API level 24.
For short, do not use like
map.forEach { t, u -> Log.i("tag", t + u) }
.Use like
map.forEach { (t, u) -> Log.i("tag", t + u) }
.(Not two parameters. Just one parameter which is a pair.)
Map.forEach is supported in Java 8 and its support in Android started from API 24