lint 错误“调用需要 API 级别 24”,而脱糖已正确配置为使用 Java 8 功能

Séb*_*ien 6 java android lint android-studio

我的应用程序有minSDKVersion 16.

\n

我已按照文档添加了以下几行到我的 build.gradle 中,以便使用一些“Java 8 语言 API,而不需要最低 API 级别”:

\n
android {\n    compileOptions {\n            coreLibraryDesugaringEnabled true\n    }\n}\n\ndependencies {\n    coreLibraryDesugaring \'com.android.tools:desugar_jdk_libs:1.1.5\'\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这按预期工作,并且以下代码在 API 16 模拟器上运行时不会崩溃:

\n
ArrayList<String> arr = new ArrayList<>();\narr.add("hello");\n// \xe2\x86\x93 this is a Java 8 API and crashes on API 16 if coreLibraryDesugaringEnabled=false\narr.removeIf(s -> true); \n
Run Code Online (Sandbox Code Playgroud)\n

现在,问题是 lint 在这一行显示错误:\nCall requires API level 24 (current min is 16): java.util.ArrayList#removeIf

\n

棉绒错误

\n

如何修复 Android Studio/lint 的错误行为?

\n

我不想抑制该错误,因为它在实际上合法时可能很有用。

\n