SDK Build Tools release notes

Android SDK Build-Tools is a component of the Android SDK required for building Android apps. It's installed in the <sdk>/build-tools/ directory.

You should always keep your Build Tools component updated by downloading the latest version using the Android SDK Manager. If you're using Android plugin for Gradle 3.0.0 or higher, your project automatically uses a default version of the build tools that the plugin specifies. To use a different version of the build tools, specify it using buildToolsVersion in your module's build.gradle, as follows:

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

Revisions

The sections below provide notes about releases of the Build Tools. To determine which revisions of the Build Tools are available in your SDK, refer to the Installed Packages listing in the Android SDK Manager.

Build Tools, Revision 34.0.0 RC3(April 2023)

General bug fixes and improvements.

This update includes support for building with Android 14 preview APIs.

This update fixes the following issue:

  • core-lambda-stubs.jar version 33.0.0 differs on macOS versus Linux/Windows. (See issue #237299698.)

This update fixes the following issue:

This update includes support for building with Android 11 Preview APIs.

This update fixes the following issue:

This update fixes the following issue:

This update includes support for building with API level 29.

This update includes support for Android Gradle plugin 3.2.0 and fixes the following issues:

  • Fixed a JNI library bug that caused apps to crash when calling androidx.renderscript.RenderScript.create().
  • Fixed a bug that caused Program type already present build errors with androidx.annotation resources.

Includes the latest version of D8.

Improves support for compiling lambdas when you enable Java 8 language features.

Improves support for Java 8 language features.

Adds support for legacy multidex for test APKs. (Issue #37324038)

In addition to general bug fixes, this release includes the following updates:

  • Updates apksigner to version 0.8:
    • Compatibility with Java 9. (Issue #37137869)
    • New --pass-encoding parameter to handle keystores and keys that are encrypted using non-ASCII passwords. If you switch to Java 9 and apksigner fails to decrypt your keystore or key, use this parameter to specify the character encoding you used to create the keystore or key. For more information, see the apksigner documentation or run apksigner sign --help from the commandline.
    • Better error message when apksigner can't verify a JAR signature due to an unsupported digest or signature algorithm. (Issue #63525618)
  • Support for AAPT2 daemon mode when using Android plugin for Gradle 3.0.0-beta7 or higher.

In addition to general bug fixes, this release restores apksigner to the build tools package (it was omitted by mistake in version 26.0.0) and includes the following updates to the tool:

  • Adds PKCS #11 support to allow signing with keys held in secure hardware. (Issue #37140484)
  • Adds support for loading additional JCA Providers before signing.
  • Honors android:targetSandboxVersion when verifying APKs.
  • When signing, rejects APKs with files that include 'CR' (carriage return), 'LF' (line feed), or 'NUL' (null) special characters in the file name.
  • Fixes apksigner.bat to correctly handle parameters containing spaces. (Issue #38132450)
  • Fixes a bug in JAR signature verification when multiple digests are present for the same entry in MANIFEST.MF. (Issue #38497270)

Adds support for building with API level 26 and contains general bug fixes.

Updates to apksigner:

  • Added --in parameter for symmetry with existing --out parameter.
  • If you do not specify the key password using --key-pass, apksigner uses the keystore password as key password. However, if the key requires a different password, you are now prompted to enter the key password from the command line. (Issue #37134986)
  • Added compatibility with jarsigner for non-ASCII passwords. (Issue #37135737)

Bug fixes.

This release includes bug fixes and the following improvements to apksigner:

  • Support for APKs with obfuscated JAR entry names.
  • --print-certs switch now also dumps MD5 fingerprints.

Bug fixes for the Jack toolchain:

  • Fixed issue with Jack supporting non-ASCII source files. (Issue #218892)
  • Fixed issue that causes an AssertionError during some compilations. (Issue #208414)
  • Added apksigner, an APK signing tool to replace jarsigner. By default, apksigner signs APKs using the conventional JAR signing scheme (used by jarsigner) and the APK Signature Scheme v2 introduced in Android 7.0 (API level 24). Any modification to an APK signed with APK Signature Scheme v2 invalidates its signature. Thus, APK post-processing, such as zipalign, must be performed before apksigner is invoked, not after. Invoking zipalign before apksigner works fine because apksigner preserves APK alignment and compression (unlike jarsigner).
  • Fix issues in the RenderScript Support Library on arm64 devices.
  • Fix issues in the RenderScript Support Library on certain Jelly Bean devices.
  • Support renderscriptTargetAPI 21+ when using Android Plugin for Gradle, Revision 2.1.0 and above .
  • Improved the merging performance of the dx tool.
  • Fixed issues in the RenderScript compiler for Windows.

Fixed issues in the RenderScript tools.

Added support for the Android 6.0 (API level 23) release.

Fixed compatibility issues with RenderScript kernels on Android 4.4 (API level 19) to Android 4.1 (API level 16) devices.

Added support for Android 5.1 (API level 22).

Fixed problem with building data layouts in 32-bit mode.

Fixed multidex script issues.

Added multidex file support for APKs and Jack support to address the 64K method reference limit.

Complete updates for Eclipse ADT to solve instability issues on Windows platforms.

Initial updates for Eclipse ADT on Windows. Please use Revision 21.0.2.

General Notes:
  • Added support for Android 5.0 (API level 21).
  • RenderScript now supports seamless 32/64-bit operation for API level 21 and higher.
  • Fixed issue with the Gradle build system when using the JaCoCo plugin. (Issue 69174)
  • Added an input-list option for use with long command lines on Windows.
General Notes:
  • Added support for Android Wear.
General Notes:
  • Added zipalign to the Build Tools.
  • Modified aapt to ignore XML files that fail to compile.

Fixed an issue with RenderScript support.

Fixed RenderScript build issues:
  • Fixed a problem with RenderScript bitcode encoding. (Issue 64775)
  • Fixed a problem with RenderScript missing math symbols (Issue 64110)

Fixed miscellaneous build issues:
  • Fixed support for compiling RenderScript in NDK mode with Gradle.
  • Fixed BufferOverflowException problem in the dx build. (Issue 61710)

Added support for Android 4.4 (API level 19) build targets.

Fixed several minor build issues.

Fixed issue with RenderScript support mode.

Added support for Android 4.3 (API level 18) build targets.

Initial release.

General Notes:
  • Included support for Android 4.2 (API level 17) build targets.
  • Decoupled the build-specific components of the Android SDK from the platform-tools component, so that the build tools can be updated independently of the integrated development environment (IDE) components.