Ho eseguito l'aggiornamento ad Android Studio 3.1 e ricevo il seguente errore:
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)}
Ecco la mia configurazione gradle:
compileSdkVersion 27
//buildToolsVersion '27.0.3'
defaultConfig {
minSdkVersion 16
targetSdkVersion 27
multiDexEnabled true
//...
}
Come puoi vedere, sto prendendo di mira 27 che è già davanti a 24 di cui si lamenta. Cosa devo fare esattamente per risolvere questo problema? Se cambio a 1.8 java, non mi mancheranno molti clienti? Perché non ho ricevuto questo errore prima di aggiornare Android Studio?
Non so se si tratta della classe LifecycleObserver che ho inserito di recente, era in Kotlin e ora l'ho cambiata in java ma ricevo ancora lo stesso errore dopo la pulizia del progetto:
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);
}
}
Come rintracciare da dove proviene l'errore in modo da poterlo risolvere?
Ecco le mie dipendenze dalla versione:
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
. "Che cosa devo fare esattamente per risolvere questo problema?" - prova a compilare con la compatibilità Java 8 abilitata . "se cambio a 1.8 java non mi mancheranno molti clienti?" - non per i metodi di interfaccia predefiniti di cui si lamenta il messaggio di errore. "perché non ricevevo questo errore prima di aggiornare Android Studio." - forse una dipendenza implicita (ad esempio, associazione dati).