domingo, 7 de noviembre de 2021

Error: Android Gradle plugin requires Java 11 to run

A partir del 1 de noviembre del 2021, las actualizaciones de aplicaciones y juegos en Google Play tendrán que orientarse a Android 11 (nivel 30 de la API) o versiones posteriores. Después de esta fecha, no podrás subir nuevos app bundles ni APKs con una versión de targetSdkVersion inferior a la 30.

En este artículo voy a explicar como solucionar el problema Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8. Este error me ha aparecido después de cambiar el sdk de mi aplicación a la versión 30, que es obligatoria a partir del 1 de noviembre de 2021 tal y como indiqué anteriormente.

android {
    compileSdkVersion 30
    defaultConfig {
        ...
        targetSdkVersion 30
        ...
    }
    ...
}

Estoy utilizando Android Studio Artic Fox / 2020.3.1 Patch 3

El mensaje nos indica que la máquina virtual de java se encuentra en la versión 1.8 y tenemos que sustituirla por la versión 11. Para solucionarlo tienes que ir a File - Settings - Build, Execution, Deployment - Build Tools - Gradle - Gradle JDK


Ahora selecciona la opción:


Ahora vamos a comprobar si tenemos instalado el SDK de Android 11:

  • Haz clic en Tools - SDK Manager.
  • En la pestaña SDK Platforms, selecciona Android 11.
  • En la pestaña SDK Tools, selecciona Android SDK Build-Tools 30 (o una versión posterior).
  • Haz clic en OK para comenzar la instalación.

Ejecuta Clean Project y Rebuild Proyect en el menú Build. Si aparece el Invoke-customs are only supported starting with Android O (--min-api 26) tienes que añadir a app/build.gradle:

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

Ahora vuelve a ejecutar Clean Project y Rebuild Proyect en el menú Build

En una de mis app se produjo el siguiente error: AAPT: error: resource android:attr/lStar not found

La única solución que encontré fue actualizar el SDK a la versión 31:

android {
    compileSdkVersion 31
    defaultConfig {
        ...
        targetSdkVersion 31
        ...
    }
    ...
}

Información oficial para la migración:
https://developer.android.com/distribute/best-practices/develop/target-sdk

No hay comentarios:

Publicar un comentario