Actualicé a Android Studio 3.1 y recibo el siguiente error:
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)}
aquí está mi configuración de gradle:
compileSdkVersion 27
//buildToolsVersion '27.0.3'
defaultConfig {
minSdkVersion 16
targetSdkVersion 27
multiDexEnabled true
//...
}
Como puede ver, estoy apuntando a 27, que ya está por delante de 24 de los que se queja. ¿Qué debo hacer exactamente para solucionar esto? Si cambio a 1.8 java, ¿no perderé muchos clientes? ¿Por qué no recibí este error antes de actualizar Android Studio?
No sé si se trata de la clase LifecycleObserver que instalé recientemente, estaba en kotlin y ahora la cambié a java pero sigo teniendo el mismo error después de limpiar el proyecto:
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);
}
}
¿Cómo rastrear de dónde viene el error para poder solucionarlo?
Aquí están mis dependencias de versión:
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
. "¿Qué debo hacer exactamente para arreglar esto?" - intente compilar con la compatibilidad Java 8 habilitada . "si cambio a 1.8 java, ¿no faltarán muchos clientes?" - no para los métodos de interfaz predeterminados de los que se queja el mensaje de error. "¿Por qué no recibí este error antes de actualizar Android Studio?", tal vez una dependencia implícita (por ejemplo, enlace de datos).