没有–min-sdk-version> = 24时使用的默认或静态接口方法

为什么我们在Android Studio 3.0 RC1中出现此错误?

com.android.dx.cf.code.SimException: default or static interface method used without --min-sdk-version >= 24 

根据android文档 ,“默认和静态接口方法”function与Any min-sdk版本兼容。

我将其跟踪到一个调用Comparator.naturalOrder()的java库 – 它已在API级别24中添加。
因此,我不希望在java库中对此代码有任何错误消息。

当我在我自己的android-app或lib java代码中使用代码时,我看到正确的lint消息:“Call需要API级别24”

错误消息是错误的还是我错过了什么?

我刚刚发现,当我激活D8 dexer时它会按预期工作, D8 dexer计划成为Android Studio 3.1的默认设置

在项目gradle.properties ,添加:

 android.enableD8=true 

现在代码按预期编译,我仍然得到预期的linter消息。

如果您正在谈论的java库是guava,您可以尝试将其升级到最新的特定于Android的构建

 implementation 'com.google.guava:guava:23.0-android' 

这对我来说很有用

从guava v24我们有两个替代版本:Android或JRE。 因此,在这种情况下,您需要将依赖项包括在:

 compile 'com.google.guava:guava:24.1-android' 

查找回购中的所有详细信息: https : //github.com/google/guava