detailDUDMap.values().forEach(value -> {
    ...
});
  • 在 Android 开发中, 上述代码出现如下警告信息
Call requires API level 24, or core library desugaring (current min is 21): java. lang. Iterable#forEach
问题原因
  1. 代码中使用的 Iterable#forEach 方法需要 Android API 24(Android 7.0)或更高版本

  2. 但项目配置的最低兼容版本(minSdk)为 API 21(Android 5.0)

处理策略
  1. 回退到使用 for 循环
for (DetailDUD value : detailDUDMap.values()) {
    ...
}
  1. 将 minSdk 提升到 24,修改模块级 build.gradle 文件
defaultConfig {
    minSdk 24
}
  1. 使用核心库脱糖技术让低版本 Android 系统支持 Java 8 特性,在模块级 build.gradle 文件中添加如下内容
compileOptions {

    // 启用核心库脱糖
    coreLibraryDesugaringEnabled true
}
dependencies {

    // 添加核心库脱糖依赖
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'
}

更多推荐