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