Android Studio 3.1默认或静态接口方法,不使用--min-sdk-version> = 24

时间:2018-04-02 17:33:44

标签: android android-studio android-architecture-components

我最近将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,我就开始收到此错误。

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