我升级到 Android Studio 3.1 并收到以下错误:
仅从 Android N (–min-api 24) 开始支持默认接口方法: void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner) Message{kind=ERROR, text=默认接口方法是仅支持从 Android N (–min-api 24) 开始: void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner), sources=[Unknown source file], tool name=Optional.of( D8)}
仅从 Android N (–min-api 24) 开始支持默认接口方法: void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner)
Message{kind=ERROR, text=默认接口方法是仅支持从 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 配置:
compileSdkVersion 27 //buildToolsVersion '27.0.3' defaultConfig { minSdkVersion 16 targetSdkVersion 27 multiDexEnabled true //... }
正如你所看到的,我的目标是 27,它已经超过了它抱怨的 24。我究竟应该怎么做才能解决这个问题?如果我改用Java 1.8,我会不会错过很多客户?为什么我在升级 Android Studio 之前没有收到此错误?
不知道是不是和我最近放的 LifecycleObserver 类有关。原来是 Kotlin 的,现在改成 Java 了,但是清理项目后还是报同样的错误:
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); } }
我如何追踪错误的来源以便修复它?
这是我的版本依赖项:
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' }
作为参考android{...},在 build.gradle 的闭包中为您的应用程序模块(应用程序级别)添加此内容以解决问题:
android{...}
android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } ... }