我刚刚注意到这个lint错误:
调用需要API Level 24 (当前最小值为19) java.util.map#foreach
当我在Kotlin的MutableMap上使用扩展函数forEach时出现了这个问题。 我写这行代码时没有出现这个错误,但现在它出现了。 而且我在我的另一台机器上没有看到这个错误。
我刚刚注意到这个lint错误:
调用需要API Level 24 (当前最小值为19) java.util.map#foreach
当我在Kotlin的MutableMap上使用扩展函数forEach时出现了这个问题。 我写这行代码时没有出现这个错误,但现在它出现了。 而且我在我的另一台机器上没有看到这个错误。
kotlin.collections.MutableMap.forEach
。Map.forEach
。forEach
:map.forEach { t, u -> Log.i("tag", t + u) }
(这是使用 Java 8 API,不适用于 Android API 等级 <= 23)。
应该像这样使用:map.forEach { (t, u) -> Log.i("tag", t + u) }
(这是使用 Kotlin API)。
(不是两个参数。只有一个成对出现的参数。)list.iterator().forEach {}
iterator()
。event.attributes?.forEach { (key, value) -> if (key != null && value != null) { put(key, value) } }
)。 - Bill Moteone,two ->
vs (one,two) ->
),forEach
都会被视为Java 8版本。我找到的最佳解决方案是使用带有别名的显式导入(import kotlin.collections.forEach as kForEach
)。别名可以防止优化导入删除显式导入。Map.forEach在Java 8中得到支持,而它在Android上的支持始于API 24
gradle clean
,因为您的另一台机器没有出现该错误。还要检查下面Naetmul的答案。 - glee8eBundle#putBoolean
这样的东西中也是如此。目前Linter似乎有点出了问题。 - ditn