我刚刚注意到了这个线头错误:

Call requires API Level 24 (current min is 19) java.util.map#foreach

当我在Kotlin中的MutableMap上使用扩展函数for Each时. 这在我写这行的时候还没有发生,但是现在就在那里了. 我在我的另一台机器上没有看到这个错误.

推荐答案

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

What you are using seems to be Map.forEach in Java 8.

Refer to this article: http://blog.danlew.net/2017/03/16/kotlin-puzzler-whose-line-is-it-anyways/

This seems to be a common mistake.

Java8受到Android API级别24的良好支持.

For short, do not use forEach like map.forEach { t, u -> Log.i("tag", t + u) } (this is using Java 8 API, which does not work for Android API level <= 23).
Use it like map.forEach { (t, u) -> Log.i("tag", t + u) } (this is using Kotlin API).
(Not two parameters. Just one parameter that is a pair.)

Kotlin相关问答推荐

如何在Kotlin的嵌套作用域中解析对此的引用

调用即发即忘方法--哪个作用域?

Android Jetpack编写androidx.compose.oundation.lazy.grid.Items

如何访问方法引用的接收者?

如果启用了Flyway迁移,则不能具有配置属性';datources.default.架构-生成

使用调度程序运行异步 Kotlin 代码

Kotlin 接口类型参数

为什么这两个 Kotlin 协程函数不一样?

使用 Kotlin 协程时 Room dao 类出错

AIDL 中的 Parcelize 注释:Incompatible types: Object cannot be converted to MyCustomObject

在 Kotlin 中,当枚举类实现接口时,如何解决继承的声明冲突?

Kotlin 中的部分类委托

Kotlin 枚举中的循环引用

如何在 Kotlin 中使用 volatile

如何使用 Coil 从 URL 获取位图?

如何从 Firestore 查询中排除元素?

Kotlin Compose,在行中对齐元素

Ktor 在 java.library.path 中没有 netty_transport_native_epoll_x86_64

Kotlin的web-framework框架

Kotlin反射不可用