为什么我们在Android Studio 3.0 RC1中出现此错误?
com.android.dx.cf.code.SimException:
default or static interface method used without --min-sdk-version >= 24
根据android docs,“默认和静态界面方法”功能与任何 min-sdk版本兼容。
我将其跟踪到一个调用Comparator.naturalOrder()的java库 - 它已在API级别24中添加。
所以我不希望在java库中对此代码有任何错误消息。
当我在自己的android-app或lib java代码中使用代码时,我看到正确的lint消息:“Call需要API级别24”“
错误消息是错误的还是我错过了什么?
答案 0 :(得分:26)
我刚刚发现,当我激活计划为Android Studio 3.1默认的D8 dexer时,它会按预期工作
在项目gradle.properties
中,添加:
android.enableD8=true
现在代码按预期编译,我仍然得到预期的linter消息。
答案 1 :(得分:3)
如果您正在谈论的java库是guava,您可以尝试将其升级到最新的特定于Android的构建
implementation 'com.google.guava:guava:23.0-android'
这对我来说很明显
答案 2 :(得分:0)
从guava v24我们有两个替代版本:Android或JRE。因此,在这种情况下,您需要将依赖项包括在:
compile 'com.google.guava:guava:24.1-android'
查找仓库中的所有详细信息:https://github.com/google/guava
答案 3 :(得分:0)
如果此错误是由于番石榴引起的,那么根据Google的官方文档,解决方案是: https://github.com/google/guava
将依赖项更改为(本文撰写时版本为最新版本):
api 'com.google.guava:guava:27.0-android'
这为我解决了这个问题。