Ich habe ein Upgrade auf Android Studio 3.1 durchgeführt und erhalte die folgende Fehlermeldung:
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)}
hier ist meine gradle config:
compileSdkVersion 27
//buildToolsVersion '27.0.3'
defaultConfig {
minSdkVersion 16
targetSdkVersion 27
multiDexEnabled true
//...
}
Wie Sie sehen können, ziele ich auf 27 ab, was bereits vor 24 liegt, über die es sich beschwert. Was genau soll ich tun, um dies zu beheben? Wenn ich auf 1.8 Java wechsle, werde ich dann nicht viele Kunden vermissen? Warum habe ich diesen Fehler nicht erhalten, bevor ich Android Studio aktualisiert habe?
Ich weiß nicht, ob es sich um die LifecycleObserver-Klasse handelt, die ich kürzlich eingefügt habe. Sie war in Kotlin und jetzt habe ich sie in Java geändert, aber nach dem Bereinigen des Projekts wird immer noch der gleiche Fehler angezeigt:
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);
}
}
Wie kann ich nachverfolgen, woher der Fehler kommt, damit ich ihn beheben kann?
Hier sind meine Versionsabhängigkeiten:
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
. "Was genau soll ich tun, um das zu beheben?" - Versuchen Sie, mit aktivierter Java 8-Kompatibilität zu kompilieren . "Wenn ich zu 1.8 Java wechsle, werde ich dann nicht viele Kunden vermissen?" - Nicht für die Standardschnittstellenmethoden, über die sich die Fehlermeldung beschwert. "Warum habe ich diesen Fehler nicht erhalten, bevor ich Android Studio aktualisiert habe?" - möglicherweise eine implizite Abhängigkeit (z. B. Datenbindung).