page.title=SDK Build Tools Release Notes

@jd:body

<div id="qv-wrapper">
<div id="qv">

  <h2>See Also</h2>
  <ol>
    <li><a href="{@docRoot}tools/building/index.html">Building and Running</a></li>
  </ol>

</div>
</div>

<p>Build Tools is a component of the Android SDK required for building Android
  application code. The latest version of these tools is included in the
  <a href="{@docRoot}sdk/index.html">SDK starter package</a> and installed in the
  <code>&lt;sdk&gt;/build-tools/</code> directory.</p>

<p>You should always keep your Build Tools component updated by downloading the latest version
  using the <a href="{@docRoot}tools/help/sdk-manager.html">Android SDK Manager</a>. By default,
  the Android SDK uses the most recent downloaded version of the Build Tools. If your projects
  depend on older versions of the Build Tools, the SDK Manager allows you to download and maintain
  separate versions of the tools for use with those projects.</p>

<p>To use a specific version of the Build Tools in your application project:</p>

<div class="toggle-content closed">
<p style="margin-top:5px"><a href="#" onclick="return toggleContent(this)">
  <img src="/assets/images/triangle-closed.png" class="toggle-content-img" alt=""
  />Using Eclipse</a></p>

  <div class="toggle-content-toggleme">
  <ol>
    <li>In the root folder of your application project, find the {@code project.properties}
      file.</li>
    <li>Open the file and specify the Build Tools version by adding a {@code buildtools} property
      on a separate line:
<pre>
sdk.buildtools=17.0.0
</pre>
    </li>
  </ol>
  </div>
</div>

<div class="toggle-content closed">
<p style="margin-top:5px"><a href="#" onclick="return toggleContent(this)">
  <img src="/assets/images/triangle-closed.png" class="toggle-content-img" alt=""
  />Using Android Studio</a></p>

  <div class="toggle-content-toggleme">
  <ol>
    <li>In the root folder of your application project, find the {@code build.gradle}
      file.</li>
    <li>Open the file and specify the Build Tools version by adding a {@code buildToolsVersion}
      property to the {@code android} section:
<pre>
android {
    ...
    buildToolsVersion "17.0.0"
    ...
}
</pre>
    </li>
  </ol>
  </div>
</div>


<h2 id="notes">Revisions</h2>

<p>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 <em>Installed Packages</em>
listing in the Android SDK Manager.</p>

<div class="toggle-content opened">
  <p><a href="#" onclick="return toggleContent(this)">
    <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img"
      alt=""/>Build Tools, Revision 21.1.1</a> <em>(November 2014)</em>
  </p>
  <div class="toggle-content-toggleme">
    <p>Fixed multidex script issues.</p>
  </div>
</div>


<div class="toggle-content closed">
  <p><a href="#" onclick="return toggleContent(this)">
    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
      alt=""/>Build Tools, Revision 21.1</a> <em>(October 2014)</em>
  </p>
  <div class="toggle-content-toggleme">
    <p>Added multidex file support for APKs and Jack suppport to address the 64K method reference
    limit.</p>
  </div>
</div>


<div class="toggle-content closed">
  <p><a href="#" onclick="return toggleContent(this)">
    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
      alt=""/>Build Tools, Revision 21.0.2</a> <em>(October 2014)</em>
  </p>
  <div class="toggle-content-toggleme">
    <p>Complete updates for Eclipse ADT to solve instability issues on Windows platforms.</p>
  </div>
</div>


<div class="toggle-content closed">
  <p><a href="#" onclick="return toggleContent(this)">
    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
      alt=""/>Build Tools, Revision 21.0.1</a> <em>(October 2014)</em>
  </p>
  <div class="toggle-content-toggleme">
    <p>Initial updates for Eclipse ADT on Windows. Please use Revision 21.0.2.</p>
  </div>
</div>


<div class="toggle-content closed">
  <p><a href="#" onclick="return toggleContent(this)">
    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
      alt=""/>Build Tools, Revision 21.0.0</a> <em>(October 2014)</em>
  </p>
  <div class="toggle-content-toggleme">

    <dl>
      <dt>General Notes:</dt>
      <dd>
        <ul>
          <li>Added support for Android 5.0 (API level 21).</li>
          <li>RenderScript now supports seamless 32/64-bit operation for API level 21 and higher.</li>
          <li>Fixed issue with the Gradle build system when using the JaCoCo plugin.
          (<a href="http://b.android.com/69174">Issue 69174</a>)</li>
          <li>Added an <em>input-list</em> option for use with long command lines on Windows.</li>
        </ul>
      </dd>
    </dl>
  </div>
</div>


<div class="toggle-content closed">
  <p><a href="#" onclick="return toggleContent(this)">
    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
      alt=""/>Build Tools, Revision 20.0.0</a> <em>(June 2014)</em>
  </p>
  <div class="toggle-content-toggleme">

    <dl>
      <dt>General Notes:</dt>
      <dd>
        <ul>
          <li>Added support for Android Wear.</li>
        </ul>
      </dd>
    </dl>

  </div>
</div>

<div class="toggle-content closed">
  <p><a href="#" onclick="return toggleContent(this)">
    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
      alt=""/>Build Tools, Revision 19.1.0</a> <em>(May 2014)</em>
  </p>
  <div class="toggle-content-toggleme">

    <dl>
      <dt>General Notes:</dt>
      <dd>
        <ul>
          <li>Added <code>zipalign</code> to the Build Tools.</li>
          <li>Modified <code>aapt</code> to ignore XML files that fail to compile.</li>
        </ul>
      </dd>
    </dl>

  </div>
</div>

<div class="toggle-content closed">
  <p><a href="#" onclick="return toggleContent(this)">
    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
      alt=""/>Build Tools, Revision 19.0.3</a> <em>(March 2014)</em>
  </p>
  <div class="toggle-content-toggleme">

    <p>Fixed an issue with RenderScript support.</p>

  </div>
</div>

<div class="toggle-content closed">
  <p><a href="#" onclick="return toggleContent(this)">
    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
      alt=""/>Build Tools, Revision 19.0.2</a> <em>(February 2014)</em>
  </p>
  <div class="toggle-content-toggleme">

    <dl>
      <dt>Fixed RenderScript build issues:</dt>
      <dd>
        <ul>
          <li>Fixed a problem with RenderScript bitcode encoding.
            (<a href="http://b.android.com/64775">Issue 64775</a>)
          </li>
          <li>Fixed a problem with RenderScript missing math symbols
            (<a href="http://b.android.com/64110">Issue 64110</a>)
          </li>
        </ul>
      </dd>
    </dl>
    <p></p>

  </div>
</div>



<div class="toggle-content closed">
  <p><a href="#" onclick="return toggleContent(this)">
    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
      alt=""/>Build Tools, Revision 19.0.1</a> <em>(December 2013)</em>
  </p>
  <div class="toggle-content-toggleme">

    <dl>
      <dt>Fixed miscellaneous build issues:</dt>
      <dd>
        <ul>
          <li>Fixed support for compiling RenderScript in NDK mode with Gradle.</li>
          <li>Fixed {@code BufferOverflowException} problem in the dx build.
            (<a href="http://b.android.com/61710">Issue 61710</a>)
          </li>
        </ul>
      </dd>
    </dl>
    <p></p>

  </div>
</div>

<div class="toggle-content closed">
  <p><a href="#" onclick="return toggleContent(this)">
    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
      alt=""/>Build Tools, Revision 19</a> <em>(October 2013)</em>
  </p>
  <div class="toggle-content-toggleme">

    <p>Added support for Android 4.4 (API level 19) build targets.</p>

  </div>
</div>

<div class="toggle-content closed">
  <p><a href="#" onclick="return toggleContent(this)">
    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
      alt=""/>Build Tools, Revision 18.1.1</a> <em>(September 2013)</em>
  </p>
  <div class="toggle-content-toggleme">

    <p>Fixed several minor build issues.</p>

  </div>
</div>

<div class="toggle-content closed">
  <p><a href="#" onclick="return toggleContent(this)">
    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
      alt=""/>Build Tools, Revision 18.1.0</a> <em>(September 2013)</em>
  </p>
  <div class="toggle-content-toggleme">

    <p>Fixed issue with RenderScript support mode.</p>

  </div>
</div>

<div class="toggle-content closed">
  <p><a href="#" onclick="return toggleContent(this)">
    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
      alt=""/>Build Tools, Revision 18.0.1</a> <em>(July 2013)</em>
  </p>
  <div class="toggle-content-toggleme">

    <p>Added support for Android 4.3 (API level 18) build targets.</p>

  </div>
</div>

<div class="toggle-content closed">
  <p><a href="#" onclick="return toggleContent(this)">
    <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
      alt=""/>Build Tools, Revision 17</a> <em>(May 2013)</em>
  </p>
  <div class="toggle-content-toggleme">

    <p>Initial release.</p>

    <dl>
      <dt>General Notes:</dt>
      <dd>
        <ul>
          <li>Included support for Android 4.2 (API level 17) build targets.</li>
          <li>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.</li>
        </ul>
      </dd>
    </dl>

  </div>
</div>
