如果我在 android 代码中使用 java.lang.Iterable#forEach,Lint 会出错

Lint is giving error if I use java.lang.Iterable#forEach in android code

在我的 android 代码 (Kotlin) 中,我使用了 java 可迭代的 forEach 方法。

mandatoryViews.forEach { view ->
   // my code here
}

下面是我在 build.gradle(应用程序)中的 sdk 配置:

minSdkVersion 23
targetSdkVersion 30

现在我的代码可以正常构建了。我还尝试在 API 23 像素设备上 运行 它并且一切正常。

但是在我 运行 gradlew lint 看到 lint 错误之后,它失败了并且报告给我这个错误: Call requires API level 24 (current min is 23): java.lang.Iterable#forEach

无法理解为什么 lint 认为它不能在 API 23 上运行,而在 API 23 设备上我的代码是 运行ning 没问题。

issue 已在 Android Gradle 插件 4.2 提供的 lint 中修复,4.2.1 是目前最新的稳定版本。

更新您的项目级别 build.gradle 以拥有

classpath 'com.android.tools.build:gradle:4.2.1'

在其 buildscript.dependencies 块中。