我最近将我的 Android Studio 更新到 3.1,但我开始收到此错误:
Default interface methods are only supported starting with Android N (--min-api 24): void android.arch.lifecycle.DefaultLifecycleObserver.a(android.arch.lifecycle.h) Message{kind=ERROR, text=Default interface methods are only supported starting with Android N (--min-api 24): void android.arch.lifecycle.DefaultLifecycleObserver.a(android.arch.lifecycle.h), sources=[Unknown source file], tool name=Optional.of(D8)}
这是我的应用 build.gradle
文件内容:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
compileSdkVersion 27
defaultConfig {
applicationId "com.sample"
minSdkVersion 21
targetSdkVersion 27
versionCode 11
versionName "2.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
我还在使用以下 Android 架构组件:
implementation "android.arch.lifecycle:extensions:1.1.1"
implementation "android.arch.lifecycle:common-java8:1.1.1"
implementation "android.arch.persistence.room:runtime:1.0.0"
implementation "android.arch.persistence.room:rxjava2:1.0.0"
annotationProcessor "android.arch.persistence.room:compiler:1.0.0"
除此之外,我还在使用 Gradle 构建工具版本 3.1.0
,Gradle 版本是 4.4
。
在对类似问题进行了一些搜索之后,我也在项目 gradle.properties
中尝试了这个没有运气:
android.enableD8=true
在 Android Studio 3.0 中一切正常,但是当我升级到 3.1 时,我开始收到这个错误。
最佳答案
我认为这可能是他们针对 Java 8 和 min-apis 的“特殊”实现的问题。 android.arch.lifecycle:common-java8:1.1.1
。
试试“普通”annotationProcessor android.arch.lifecycle:compiler:1.1.1
。
我知道这不一样,但它可能会暴露一个错误或库的限制。或者您的 grade
文件可能有一些旧选项?
我最初的建议是创建一个具有相同依赖项的 EMPTY 项目,看看是否可以让它在那里工作。
如有需要,向 issues.google.com 报告会更容易。
来源:https://developer.android.com/topic/libraries/architecture/adding-components.html
关于Android Studio 3.1 在没有 --min-sdk-version >= 24 的情况下使用默认或静态接口(interface)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49615867/