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](https://developer.android.com/studio/intro/update). If you're using
[Android plugin for Gradle 3.0.0](https://developer.android.com/studio/releases/gradle-plugin#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`](https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.AppExtension.html#com.android.build.gradle.AppExtension:buildToolsVersion)
in your module's `build.gradle`, as follows:  

### Groovy

```groovy
android {
    buildToolsVersion "35.0.0"
    ...
}
```

### Kotlin

```kotlin
android {
    buildToolsVersion = "35.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.
Build Tools, Revision 34.0.0 *(February 2023)*

This update includes support for building with Android 14 preview APIs.
Build Tools, Revision 33.0.2 *(February 2023)*

This update fixes the following issue:

- `core-lambda-stubs.jar` version 33.0.0 differs on macOS versus Linux/Windows. (See [issue #237299698](https://issuetracker.google.com/issues/237299698).)
Build Tools, Revision 33.0.1 *(November 2022)*

This update fixes the following issue:

- AIDL fails with build-tools 33.0.0. (See [issue #236167971](https://issuetracker.google.com/issues/236167971))
Build Tools, Revision 30.0.0 rc4 *(May 2020)*

This update includes support for building with Android 11 Preview APIs.
Build Tools, Revision 29.0.3 *(January 2020)*

This update fixes the following issue:

- Build issue with Renderscript on macOS Catalina. (See [issue #142590626](https://issuetracker.google.com/issues/142590626))
Build Tools, Revision 29.0.2 *(August 2019)*

This update fixes the following issue:

- [librsjni_androidx.so SIGSEGV](https://issuetracker.google.com/issues/133169129)
Build Tools, Revision 29.0.0 *(June 2019)*

This update includes support for building with API level 29.
Build Tools, Revision 28.0.3 *(September 2018)*

This update includes support for
[Android Gradle plugin 3.2.0](https://developer.android.com/studio/releases/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.
Build Tools, Revision 28.0.2 *(August 2018)*

Includes the latest version of [D8](https://developer.android.com/studio/command-line/d8).
Build Tools, Revision 27.0.3 *(December 2017)*

Improves support for compiling lambdas when you enable
[Java 8 language features](https://developer.android.com/studio/write/java8-support).
Build Tools, Revision 27.0.2 *(December 2017)*

Improves support for
[Java 8 language features](https://developer.android.com/studio/write/java8-support).
Build Tools, Revision 27.0.1 *(November 2017)*

Adds support for legacy multidex for test APKs.
([Issue #37324038](https://issuetracker.google.com/37324038))
Build Tools, Revision 26.0.2 *(October 2017)*

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

- Updates `apksigner` to version 0.8:
  - Compatibility with Java 9. ([Issue #37137869](https://issuetracker.google.com/issues/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](https://developer.android.com/studio/command-line/apksigner#options-sign-key-cert) 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](https://issuetracker.google.com/issues/63525618))
- Support for AAPT2 daemon mode when using [Android plugin for Gradle
  `3.0.0-beta7`](https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration) or higher.
Build Tools, Revision 26.0.1 *(July 2017)*

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](https://issuetracker.google.com/issues/37140484))
- Adds support for loading additional [JCA Providers](https://docs.oracle.com/javase/8/docs/technotes/guides/security/crypto/CryptoSpec.html#Provider) before signing.
- Honors [android:targetSandboxVersion](https://developer.android.com/reference/android/R.attr#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](https://issuetracker.google.com/issues/38132450))
- Fixes a bug in JAR signature verification when multiple digests are present for the same entry in `MANIFEST.MF`. ([Issue #38497270](https://issuetracker.google.com/issues/38497270))
Build Tools, Revision 26.0.0 *(June 2017)*

Adds support for building with API level 26 and contains general bug fixes.
Build Tools, Revision 25.0.3 *(April 2017)*

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](https://issuetracker.google.com/issues/37134986))
- Added compatibility with `jarsigner` for non-ASCII passwords. ([Issue #37135737](https://issuetracker.google.com/issues/37135737))
Build Tools, Revision 25.0.2 *(December 2016)*

Bug fixes.
Build Tools, Revision 25.0.1 *(November 2016)*

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.
Build Tools, Revision 25.0.0 *(October 2016)*


Bug fixes for the Jack toolchain:

- Fixed issue with Jack supporting non-ASCII source files. ([Issue
  #218892](https://code.google.com/p/android/issues/detail?id=218892))
- Fixed issue that causes an `AssertionError` during some compilations. ([Issue
  #208414](https://code.google.com/p/android/issues/detail?id=208414))
Build Tools, Revision 24.0.3 *(September 2016)*

- Added [`apksigner`](https://developer.android.com/studio/command-line/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](https://developer.android.com/about/versions/nougat/android-7.0#apk_signature_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`).
Build Tools, Revision 23.0.3 *(March 2016)*

- Fix issues in the [RenderScript](https://developer.android.com/guide/topics/renderscript/compute) Support Library on arm64 devices.
- Fix issues in the [RenderScript](https://developer.android.com/guide/topics/renderscript/compute) Support Library on certain Jelly Bean devices.
- Support `renderscriptTargetAPI 21+` when using Android Plugin for Gradle, Revision 2.1.0 and above .
Build Tools, Revision 23.0.2 *(November 2015)*

- Improved the merging performance of the `dx` tool.
- Fixed issues in the [RenderScript](https://developer.android.com/guide/topics/renderscript/compute) compiler for Windows.
Build Tools, Revision 23.0.1 *(October 2015)*

Fixed issues in the RenderScript tools.
Build Tools, Revision 23.0.0 *(August 2015)*

Added support for the Android 6.0 (API level 23) release.
Build Tools, Revision 22.0.1 *(March 2015)*

Fixed compatibility issues with
[RenderScript](https://developer.android.com/guide/topics/renderscript/compute) kernels on
Android 4.4 (API level 19) to Android 4.1 (API level 16) devices.
Build Tools, Revision 22.0.0 *(March 2015)*

Added support for Android 5.1 (API level 22).
Build Tools, Revision 21.1.2 *(February 2015)*

Fixed problem with building data layouts in 32-bit mode.
Build Tools, Revision 21.1.1 *(November 2014)*

Fixed multidex script issues.
Build Tools, Revision 21.1 *(October 2014)*

Added multidex file support for APKs and Jack support to address the 64K method reference
limit.
Build Tools, Revision 21.0.2 *(October 2014)*

Complete updates for Eclipse ADT to solve instability issues on Windows platforms.
Build Tools, Revision 21.0.1 *(October 2014)*

Initial updates for Eclipse ADT on Windows. Please use Revision 21.0.2.
Build Tools, Revision 21.0.0 *(October 2014)*

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](http://b.android.com/69174))
    - Added an *input-list* option for use with long command lines on Windows.

Build Tools, Revision 20.0.0 *(June 2014)*

General Notes:
:
    - Added support for Android Wear.

Build Tools, Revision 19.1.0 *(May 2014)*

General Notes:
:
    - Added `zipalign` to the Build Tools.
    - Modified `aapt` to ignore XML files that fail to compile.

Build Tools, Revision 19.0.3 *(March 2014)*

Fixed an issue with RenderScript support.
Build Tools, Revision 19.0.2 *(February 2014)*

Fixed RenderScript build issues:
:
    - Fixed a problem with RenderScript bitcode encoding. ([Issue 64775](http://b.android.com/64775))
    - Fixed a problem with RenderScript missing math symbols ([Issue 64110](http://b.android.com/64110))

<br />

Build Tools, Revision 19.0.1 *(December 2013)*

Fixed miscellaneous build issues:
:
    - Fixed support for compiling RenderScript in NDK mode with Gradle.
    - Fixed `BufferOverflowException` problem in the dx build. ([Issue 61710](http://b.android.com/61710))

<br />

Build Tools, Revision 19 *(October 2013)*

Added support for Android 4.4 (API level 19) build targets.
Build Tools, Revision 18.1.1 *(September 2013)*

Fixed several minor build issues.
Build Tools, Revision 18.1.0 *(September 2013)*

Fixed issue with RenderScript support mode.
Build Tools, Revision 18.0.1 *(July 2013)*

Added support for Android 4.3 (API level 18) build targets.
Build Tools, Revision 17 *(May 2013)*

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.