仅从Android 7.0(牛轧糖)开始支持默认接口方法 [英] Default interface methods are only supported starting with Android 7.0 (Nougat)

查看:53
本文介绍了仅从Android 7.0(牛轧糖)开始支持默认接口方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已升级到Android Studio 3.1,并且出现以下错误:

I upgraded to Android Studio 3.1 and I'm getting the following error:

仅从Android N(--min-api 24)开始支持默认接口方法:void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner)

消息{kind = ERROR,text =仅从Android N(--min-api 24)开始支持默认接口方法:void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner),来源= [未知源文件],工具名称= Optional.of(D8)}

Default interface methods are only supported starting with Android N (--min-api 24): void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner)

Message{kind=ERROR, text=Default interface methods are only supported starting with Android N (--min-api 24): void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner), sources=[Unknown source file], tool name=Optional.of(D8)}

这是我的Gradle配置:

Here is my Gradle configuration:

compileSdkVersion 27
//buildToolsVersion '27.0.3'
defaultConfig {
    minSdkVersion 16
    targetSdkVersion 27
     multiDexEnabled true
     //...
   }

如您所见,我的目标是27,已经比它抱怨的24领先.我应该怎么做才能解决此问题?如果我改用1.8 Java,会不会有很多客户?为什么在升级Android Studio之前没有收到此错误?

As you can see, I am targeting 27 which is already ahead of 24 that it's complaining about. What exactly should I do to fix this? If I change to 1.8 Java, won't I be missing a lot of customers? Why was I not getting this error before I upgraded Android Studio?

我不知道这是否与我最近放入的LifecycleObserver类有关.它在Kotlin中,现在将其更改为Java,但是在清理项目后仍然出现相同的错误:

I do not know if this is about the LifecycleObserver class I recently put in. It was in Kotlin and now I changed it to Java, but I still get the same error after cleaning the project:

public class LifeCycleAwareObserver implements LifecycleObserver {

    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    public void  onAppBackgrounded() {
        AnalyticsUtils.trackStartSession(true);
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    public void onAppForegrounded() {
        AnalyticsUtils.trackStartSession(false);
    }
}

如何跟踪错误的出处,以便加以解决?

How can I trace where the error is coming from so I can fix it?

这是我的版本依赖项:

project.ext {

        firebase_version = '12.0.0'

        supportlib_version = '27.0.2'

        room_version = '1.0.0'

        espresso_version = '3.0.1'

        archLifecycleVersion = '1.1.1'
    }

推荐答案

提到的CommonsWare 一样,请将其添加到内部在build.gradle中的 android {...} 闭包中为您的应用模块解决该问题:

As CommonsWare mentioned, for reference add this inside the android {...} closure in the build.gradle for your app module to resolve the issue:

android {
...
  compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
...
}

这篇关于仅从Android 7.0(牛轧糖)开始支持默认接口方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆