versiones sistema sirve que para operativo emui desventajas aplicacion actualizar android java-8 kotlin

sistema - Los métodos de interfaz predeterminados solo son compatibles a partir de Android N



sistema operativo de huawei (7)

Actualice su build.gradle (Módulo: aplicación) agregue el bloque compileOptions y agregue JavaVersion.VERSION_1_8

apply plugin: ''com.android.application'' android { compileSdkVersion 28 defaultConfig { applicationId "ApplicationId" minSdkVersion 19 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(''proguard-android-optimize.txt''), ''proguard-rules.pro'' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }

Actualicé a Android Studio 3.1 y obtengo 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 qué se queja? ¿Qué debo hacer exactamente para solucionar esto? si cambio a 1.8 java, ¿no faltarán muchos clientes? ¿Por qué no recibo 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 mi 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'' }


Como CommonsWare mencionó, para referencia agregue esto dentro del cierre de android {...} en build.gradle para que el módulo de su aplicación resuelva el problema:

android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } ... }


Debe usar Java8 para resolver esto, basado en google puede hacerlo (haga clic en Archivo> Estructura del proyecto ). y cambiar la compatibilidad de origen y la compatibilidad de destino.

Y también puede configurarlo directamente en el archivo build.gradle correspondiente:

android { ... // Configure only for each module that uses Java 8 // language features (either in its source code or // through dependencies). compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }



Esto también me sucedió a mí pero usando las características dinámicas. Ya tenía habilitada la compatibilidad con Java 8 en el módulo de la aplicación, pero tuve que agregar estas líneas de compatibilidad al módulo Dynamic Feature y luego funcionó.


Puede resolver este problema degradando la versión Java de compatibilidad de origen y compatibilidad de destino a 1.8 en la última versión de Android Studio 3.4.1

  1. Abra la Configuración del módulo (Estructura del proyecto) Winodw haciendo clic derecho en la carpeta de la aplicación o Comando + Flecha abajo en Mac

  2. Vaya a Módulos -> Propiedades

  3. Cambie la versión de compatibilidad de origen y de compatibilidad de destino a 1.8

  4. Haga clic en Aplicar o Aceptar Eso es todo. Resolverá tu problema.

También puede agregar manualmente en build.gradle (Módulo: aplicación)

android { ... compileOptions { sourceCompatibility = ''1.8'' targetCompatibility = ''1.8'' } ... }


Use este código en su build.gradle

android { compileOptions { incremental true sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }