Notas de la versión de la herramienta de compilación del SDK

Las herramientas de compilación son un componente obligatorio en la creación de apps con el SDK de Android. Están instaladas en el directorio <sdk>/build-tools/.

Mantén siempre actualizado el componente de herramientas de compilación. Para ello, descarga la versión más reciente con Android SDK Manager. Si usas el complemento de Android para Gradle 3.0.0 o una versión posterior, el proyecto utilizará automáticamente una versión predeterminada de las herramientas de compilación que especifique el complemento. Para usar una versión diferente de las herramientas de compilación, especifícala usando buildToolsVersion en el build.gradle del módulo como se indica a continuación:

android {
    buildToolsVersion "34.0.0"
    ...
}
android {
    buildToolsVersion = "34.0.0"
    ...
}

Revisiones

Las siguientes secciones proporcionan notas sobre las actualizaciones de las herramientas de compilación. Para determinar qué revisiones de esas herramientas están disponibles en el SDK, consulta la ficha Paquetes instalados en SDK Manager de Android.

Herramientas de compilación, revisión 34.0.0 RC3(abril de 2023)

Se realizaron correcciones de errores generales y mejoras.

Esta actualización admite la compilación con las APIs de vista previa de Android 14.

Esta actualización corrige el siguiente error:

  • La versión 33.0.0 de core-lambda-stubs.jar no es la misma en macOS que en Linux y Windows (consulta el error #237299698).

Esta actualización corrige el siguiente error:

  • El AIDL falla con las herramientas de compilación 33.0.0 (consulta el error #236167971).

Esta actualización admite la compilación con las API de vista previa de Android 11.

Esta actualización corrige el siguiente error:

  • Problema de compilación con Renderscript en macOS Catalina. (Consulta el problema 142590626).

Esta actualización corrige el siguiente error:

Esta actualización admite la compilación con API de nivel 29.

Esta actualización incluye compatibilidad con el complemento de Gradle para Android 3.2.0 y corrige los siguientes problemas:

  • Se corrigió un error de la biblioteca JNI que causaba que las apps fallaran cuando se llamaba a androidx.renderscript.RenderScript.create().
  • Se corrigió un error que causaba errores de compilación Program type already present con recursos androidx.annotation.

Incluye la versión más reciente de D8.

Mejora la compatibilidad con la compilación de lambdas cuando se habilitan las funciones del lenguaje Java 8.

Mejora la compatibilidad con las funciones del lenguaje Java 8.

Agrega compatibilidad con multidex heredado para APK de prueba. (Problema #37324038)

Además de las correcciones de errores generales, esta versión incluye las siguientes actualizaciones:

  • Actualiza apksigner a la versión 0.8:
    • Se agregó compatibilidad con Java 9. (Problema #37137869)
    • Se agregó el parámetro --pass-encoding para procesar claves y almacenes de claves encriptados con contraseñas que no son ASCII. Si cambias a Java 9 y apksigner no puede desencriptar el almacén de claves o la clave, usa este parámetro a fin de especificar la codificación de caracteres que usaste para crear el almacén de claves o la clave. Para obtener más información, consulta la documentación de apksigner o ejecuta apksigner sign --help desde la línea de comandos.
    • Se mejoró el mensaje de error que se muestra cuando apksigner no puede verificar una firma de JAR debido a un resumen o un algoritmo de firma incompatibles. (Problema #63525618)
  • Se agregó compatibilidad con el modo de daemon AAPT2 cuando se usa el complemento de Android para Gradle 3.0.0-beta7 o una versión posterior.

Además de las correcciones de errores generales, esta versión restablece apksigner al paquete de herramientas de compilación (se omitió por error en la versión 26.0.0) y cuenta con las siguientes actualizaciones de la herramienta:

  • Agrega compatibilidad con PKCS #11 para permitir la firma con claves que se mantienen en el hardware seguro. (Problema #37140484)
  • Agrega compatibilidad para la carga de proveedores de JCA adicionales antes de la firma.
  • Hace una mención especial de android:targetSandboxVersion al verificar los APK.
  • Al firmar, rechaza los APK con archivos que incluyen los caracteres especiales "CR" (retorno de carro), "LF" (avance de línea) o "NUL" (nulo) en el nombre de archivo.
  • Corrige apksigner.bat para procesar correctamente los parámetros que contienen espacios. (Problema #38132450)
  • Corrige un error en la verificación de firmas de JAR cuando hay varios resúmenes presentes para la misma entrada en MANIFEST.MF. (Problema #38497270)

Agrega compatibilidad para compilación con API de nivel 26, y contiene correcciones de errores generales.

Actualizaciones a apksigner:

  • Se agregó el parámetro --in para simetría con el parámetro --out existente.
  • Si no especificas la contraseña de clave con --key-pass, apksigner usa la contraseña del almacén de claves como contraseña de clave. Sin embargo, si la clave requiere una contraseña diferente, ahora se solicita el ingreso de la contraseña de la clave desde la línea de comandos (Problema #37134986)
  • Se agregó compatibilidad con jarsigner para contraseñas ajenas a ASCII. (Problema #37135737)

Correcciones de errores.

Esta versión incluye correcciones de errores y las siguientes mejoras de apksigner:

  • Se agregó compatibilidad para APK con nombres de entradas JAR ofuscados.
  • El interruptor --print-certs ahora también vuelca las huellas digitales MD5.

Corrección de errores para la cadena de herramientas de Jack:

  • Se corrigió el error por el que Jack admitía archivos fuente ajenos a ASCII. (Problema #218892)
  • Se corrigió el error que causaba una instancia de AssertionError durante algunas compilaciones. (Problema #208414)
  • Se agregó apksigner, una herramienta de firma de APK para reemplazar jarsigner. De forma predeterminada, apksigner firma los APK con el esquema de firma de JAR convencional (el que usa jarsigner) y el esquema de firma de APK v2 presentado en Android 7.0 (API nivel 24). Cualquier modificación a un APK firmado con el esquema de firma de APK v2 invalida la firma. Por lo tanto, el procesamiento posterior del APK, como zipalign, debe realizarse antes de invocar a apksigner, no después. La invocación de zipalign antes de apksigner funciona correctamente porque apksigner conserva la alineación y la compresión del APK (a diferencia de jarsigner).
  • Se corrigieron errores en la biblioteca de compatibilidad de RenderScript en dispositivos arm64.
  • Se corrigieron errores en la biblioteca de compatibilidad de RenderScript en determinados dispositivos Jelly Bean.
  • Se agregó compatibilidad con renderscriptTargetAPI 21+ cuando se usa el complemento de Android para Gradle, revisión 2.1.0 y versiones posteriores.
  • Se mejoró el rendimiento de combinación de la herramienta dx.
  • Se corrigieron errores del compilador RenderScript para Windows.

Se corrigieron errores en las herramientas RenderScript.

Se agregó compatibilidad para la versión Android 6.0 (nivel de API 23).

Se corrigieron problemas de compatibilidad con kernels de RenderScript en dispositivos Android 4.4 (nivel de API 19) a Android 4.1 (nivel de API 16).

Se agregó compatibilidad con Android 5.1 (nivel de API 22).

Se corrigió el error de compilación de diseños de datos en modo de 32 bits.

Se corrigieron errores de secuencias de comandos multidex.

Se agregó compatibilidad con archivos multidex para APK y compatibilidad con Jack para abordar el límite de referencia del método de 64 K.

Se realizaron actualizaciones completas para Eclipse ADT a fin de resolver problemas de inestabilidad en plataformas Windows.

Se realizaron actualizaciones iniciales para Eclipse ADT en Windows. Usa la revisión 21.0.2.

Notas generales:
  • Se agregó compatibilidad con Android 5.0 (nivel de API 21).
  • RenderScript ahora es compatible con la operación continua de 32/64 bits para los niveles de API 21 y posteriores.
  • Se corrigió el error relacionado con el sistema de compilación de Gradle cuando se usaba el complemento JaCoCo (Problema #69174).
  • Se agregó una opción input-list para uso con líneas de comando largas en Windows.
Notas generales:
  • Se agregó compatibilidad para Android Wear.
Notas generales:
  • Se agregó zipalign a las herramientas de compilación.
  • Se modificó aapt para omitir archivos XML que no se pueden compilar.

Se corrigió un error de compatibilidad con RenderScript.

Se corrigieron errores de compilación de RenderScript:
  • Se corrigió un error relacionado con la codificación de código de bits de RenderScript (Problema #64775)
  • Se corrigió un error de símbolos matemáticos faltantes de RenderScript. (Problema #64110)

Se corrigieron varios errores de compilación:
  • Se corrigió la compatibilidad para compilación de RenderScript en modo NDK con Gradle.
  • Se corrigió un problema BufferOverflowException en la compilación dx. (Problema 61710).

Se agregó compatibilidad para objetivos de compilación de Android 4.4 (nivel de API 19).

Se corrigieron varios errores menores de compilación.

Se corrigió el error con el modo de compatibilidad de RenderScript.

Se agregó compatibilidad para objetivos de compilación de Android 4.3 (nivel de API 18).

Versión inicial.

Notas generales:
  • Se incluye compatibilidad para objetivos de compilación en Android 4.2 (nivel de API ç 17).
  • Se desacoplaron los componentes específicos de la compilación del SDK de Android de los componentes de las herramientas de la plataforma, de modo que se puedan actualizar las herramientas de compilación independientemente de los componentes del entorno de desarrollo integrado (IDE).