J'ai effectué une mise à niveau vers Android Studio 3.1 et j'obtiens l'erreur suivante:
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)}
voici ma config gradle:
compileSdkVersion 27
//buildToolsVersion '27.0.3'
defaultConfig {
minSdkVersion 16
targetSdkVersion 27
multiDexEnabled true
//...
}
Comme vous pouvez le voir, je cible 27 qui est déjà en avance sur 24 dont il se plaint. Que dois-je faire exactement pour résoudre ce problème? Si je passe à la version 1.8 java, ne manquerai-je pas beaucoup de clients? Pourquoi n'ai-je pas eu cette erreur avant de mettre à niveau Android Studio?
Je ne sais pas s'il s'agit de la classe LifecycleObserver que j'ai récemment installée, c'était dans kotlin et maintenant je l'ai changé en java mais j'obtiens toujours la même erreur après le nettoyage du projet:
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);
}
}
Comment savoir d'où vient l'erreur pour que je puisse la corriger?
voici mes dépendances de version:
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
. "Que dois-je faire exactement pour résoudre ce problème?" - essayez de compiler avec la compatibilité Java 8 activée . "Si je passe à la version 1.8 java, ne manquerai-je pas beaucoup de clients?" - pas pour les méthodes d'interface par défaut dont le message d'erreur se plaint. "pourquoi je n'obtenais pas cette erreur avant de mettre à jour android studio." - peut-être une dépendance implicite (par exemple, la liaison de données).