Функции расширения Котлина внезапно требуют уровня api 24

Я только что заметил эту ошибку lint: для вызова требуется Api Level 24 (текущий min равен 19) java.util.map # foreach, когда я использую функцию расширения для каждого на MutableMap в Котлине. Этого не произошло, когда я написал строку, но теперь ее там. И я не вижу эту ошибку на другой машине.

То, что вы используете, не kotlin.collections.MutableMap.forEach .

То, что вы используете, похоже, является Map.forEach в Java 8.

Прочтите эту статью: http://blog.danlew.net/2017/03/16/kotlin-puzzler-whose-line-is-it-anyways/

Это кажется распространенной ошибкой.

Java 8 хорошо поддерживается с уровня API Android 24.

Короче говоря, не используйте как map.forEach { t, u -> Log.i("tag", t + u) } .
Используйте как map.forEach { (t, u) -> Log.i("tag", t + u) } .
(Не два параметра. Только один параметр, который является парой.)

Map.forEach поддерживается в Java 8, а его поддержка в Android началась с API 24

Intereting Posts
Проведите по экрану, чтобы обновить данные Захват ArgumentCaptor, возвращающий значение null Vert.x. Как создать реальное приложение многопользовательского JVM? Функция rxjava :: zip возвращает пустой результат Android Kotlin: Смысл бесплатной функции с использованием Mockito / PowerMock Как начать второй наблюдаемый после получения результата от первого наблюдаемого в андроиде? Kotlin-android-расширение связи между классами, аналогичными общению с другими фрагментами Функция Memoization в Котлине Могу ли я добавить возврат, когда я использую операцию Элвиса в Котлине? Проблема с DJI SDK gradle 4.4.0, если ключевое слово в градле не работает Компоненты архитектуры Kotlin kapt и android Как получить KType в Котлине? Волейбольная библиотека. Где я ошибся с Ответчиком? Доступ к значению параметра по умолчанию для функции в Котлине @PostConstruct не вызывается при использовании Kotlin BeanDefinitionDsl