我最近将Android Studio更新为3.1,我开始收到此错误:
默认接口方法仅从Android N开始支持 (--min-api 24):无效 android.arch.lifecycle.DefaultLifecycleObserver.a(android.arch.lifecycle.h) 消息{kind = ERROR,text =仅支持默认接口方法 从Android N开始(--min-api 24):void android.arch.lifecycle.DefaultLifecycleObserver.a(android.arch.lifecycle.h), sources = [未知源文件],工具名称= 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,我就开始收到此错误。
答案 0 :(得分:2)
我认为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