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.
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 recursosandroidx.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 yapksigner
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 deapksigner
o ejecutaapksigner 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 reemplazarjarsigner
. De forma predeterminada,apksigner
firma los APK con el esquema de firma de JAR convencional (el que usajarsigner
) 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, comozipalign
, debe realizarse antes de invocar aapksigner
, no después. La invocación dezipalign
antes deapksigner
funciona correctamente porqueapksigner
conserva la alineación y la compresión del APK (a diferencia dejarsigner
).
- 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 agregó
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).