Cómo compilar para Android 11 con Unity

Para admitir Android 11 (nivel de API 30), se agregó el elemento <queries> de visibilidad de paquetes a las extensiones de ARCore para AR Foundation (1.19 o versiones posteriores). Cuando se usan estas versiones de ARCore, el elemento <queries> requiere la versión 5.6.4 o posterior de Gradle.

En la mayoría de los casos, es suficiente usar la versión 3.6.0 del complemento de Android para Gradle. Para confirmar la compatibilidad entre el complemento de Android para Gradle y la versión de Gradle que usas, consulta la tabla de compatibilidad del complemento de Android para Gradle.

Compatibilidad con Gradle de Unity

Las instrucciones para las versiones compatibles de Unity se enumeran en las siguientes secciones.

Para obtener más información, consulta estos artículos:

Unity 2021 y versiones posteriores

Todas las versiones de Unity 2021 admiten la segmentación para Android 11. Consulta la documentación de Gradle para Android de Unity de 2021 para obtener información detallada sobre las versiones. En síntesis:

  • Unity 2021.1 hasta la versión 2021.1.15f1 se envía con Gradle 5.6.4 o versiones posteriores (y el complemento de Gradle 3.6.0 o versiones posteriores). No necesita realizar ninguna acción.

  • Unity 2021.1.16f1 y versiones posteriores se envían con Gradle 6.1.1 o versiones posteriores (y el complemento de Gradle 4.0.1 o versiones posteriores). No necesita realizar ninguna acción.

Unity 2020

Todas las versiones de Unity 2020 admiten la orientación a Android 11. Consulta la documentación de Gradle para Android de Unity de 2020 para obtener información detallada sobre las versiones. En síntesis:

  • Unity 2020.1, 2020.2 y 2020.3 hasta la versión 2020.3.14f1 se envían con Gradle 5.6.4 o versiones posteriores (y el complemento de Gradle 3.6.0 o versiones posteriores). No necesita realizar ninguna acción.

  • Unity 2020.3.15f1 y versiones posteriores se envían con Gradle 6.1.1 o versiones posteriores (y el complemento de Gradle 4.0.1 o versiones posteriores). No necesita realizar ninguna acción.

Unity 2019.4

  1. En Unity, abre Unity Preferences > External Tools y establece el Gradle personalizado en Gradle 5.6.4 o una versión posterior. Consulta Herramienta de compilación de Gradle para ver las descargas.

    Captura de pantalla del panel Herramientas externas, Android, que muestra una ruta de Gradle especificada manualmente.

  2. Ve a Project Settings > Player > Android > Publishing Settings > Build y selecciona ambas opciones:

    1. Custom Main Gradle Template
    2. Custom Launcher Gradle Template.

    Captura de pantalla en la que se muestra la configuración de publicación, el panel de compilación con ambas opciones de plantilla de Gradle seleccionadas

  3. Aplica los siguientes cambios a ambos archivos generados:

    • Assets/Plugins/Android/mainTemplate.gradle
    • Assets/Plugins/Android/launcherTemplate.gradle

    Si está presente, quita el siguiente comentario en la parte superior del archivo:

    // GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
    

    Inserta las siguientes líneas en la parte superior del archivo:

    buildscript {
        repositories {
            google()
            mavenCentral()
        }
        dependencies {
            // Must be Android Gradle Plugin 3.6.0 or later. For a list of
            // compatible Gradle versions refer to:
            // https://developer.android.com/studio/releases/gradle-plugin
            classpath 'com.android.tools.build:gradle:3.6.0'
        }
    }
    
    allprojects {
       repositories {
          google()
          mavenCentral()
          flatDir {
            dirs 'libs'
          }
       }
    }