Uaktualniłem do Androida Studio 3.1 i pojawia się następujący błąd:
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)}
oto moja konfiguracja stopni:
compileSdkVersion 27
//buildToolsVersion '27.0.3'
defaultConfig {
minSdkVersion 16
targetSdkVersion 27
multiDexEnabled true
//...
}
Jak widać, celuję w 27, które są już przed 24, na które narzeka. Co dokładnie powinienem zrobić, aby to naprawić? Jeśli przejdę na wersję java 1.8, czy nie stracę wielu klientów? Dlaczego nie otrzymałem tego błędu przed uaktualnieniem studia Android?
Nie wiem, czy chodzi o klasę LifecycleObserver, którą ostatnio wprowadziłem, była w kotlin, a teraz zmieniłem ją na java, ale po czyszczeniu projektu nadal pojawia się ten sam błąd:
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);
}
}
Jak ustalić, skąd pochodzi błąd, aby go naprawić?
oto moje zależności wersji:
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'
}
targetSdkVersion
. „Co dokładnie powinienem zrobić, aby to naprawić?” - spróbuj skompilować z włączoną kompatybilnością Java 8 . „jeśli przejdę na wersję 1.8 java, czy nie będę mieć wielu klientów?” - nie dotyczy domyślnych metod interfejsu, na które narzeka komunikat o błędzie. „dlaczego nie otrzymałem tego błędu przed uaktualnieniem Android Studio.” - być może ukryta zależność (np. powiązanie danych).