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.
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:
- AIDL fails with build-tools 33.0.0. (See issue #236167971)
This update includes support for building with Android 11 Preview APIs.
This update fixes the following issue:
- Build issue with Renderscript on macOS Catalina. (See issue #142590626)
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 withandroidx.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 andapksigner
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 theapksigner
documentation or runapksigner 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 replacejarsigner
. By default,apksigner
signs APKs using the conventional JAR signing scheme (used byjarsigner
) 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 aszipalign
, must be performed beforeapksigner
is invoked, not after. Invokingzipalign
beforeapksigner
works fine becauseapksigner
preserves APK alignment and compression (unlikejarsigner
).
- 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.
- Added
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.