page.title=Upgrading the SDK
sdk.version=1.1_r1
@jd:body

<!--
<div class="sidebox-wrapper">
  <div class="sidebox-inner">

     <h2>Useful Links</h2>

      <ul class="noindent">
        <li><a href="migrating/0.9-1.0/changes-overview.html">Overview of Changes</a>
		      <p>A high-level look at what's changed in Android, with 
		       discussion of how the changes may affect your apps.</p></li>

        <li><a href="migrating/0.9-1.0/changes.html">API Diff Report</a> 
                <p>A detailed report that lists all the specific changes in the latest SDK.</p></li>

        <li><a href="RELEASENOTES.html">Release Notes</a> 
                <p>Version details, known issues, and resolved issues. </p></li>

        <li><a href="http://groups.google.com/group/android-developers">Android Developers Group</a> 
            <p>A forum where you can discuss migration issues and learn from other Android developers. </p></li>
 
        <li><a href="http://code.google.com/p/android/issues/list">Android Issue Tracker</a>
            <p>If you think you may have found a bug, use the issue tracker to report it.</p></li>
      </ul>

   </div>
</div>
-->

<p>This document describes how to move your devlopment environment and existing
Android applications from an Android 1.0 SDK to the Android 1.1, Release 1 SDK.
If you are migrating applications from an earlier SDK, please read the upgrading
document available in the Android 1.0 SDK package.
</p>

<p>To ensure that your applications are compliant with the Android 1.1 system available 
on mobile devices, you need to install the Android 1.1 SDK and port your existing Android 
applications to it. The sections below guide you through the process.</p>

<h2 id="install-new">Installing the Latest SDK</h2>

<p><a href="{@docRoot}sdk/1.1_r1/index.html">Download the SDK</a> and unpack it into a safe location.</p>

<p>After unpacking the new SDK, you should:</p>

<ul>
  <li>Wipe your emulator data. <p>Some data formats have changed since the last
  SDK release, so any previously saved data in your emulator must be removed. Open a console/terminal
  and navigate to the <code>/tools</code> directory of your SDK. Launch the 
  emulator with the <code>-wipe-data</code> option. 
  <p>Windows: <code>emulator -wipe-data</code><br/>
   Mac/Linux: <code>./emulator -wipe-data</code></p>
  </li>
  <li>Update your PATH variable (Mac/Linux; optional). <p>If you had previously setup your 
  PATH variable to point to the SDK tools directory, then you'll need to update it to 
  point to the new SDK. For example, for a <code>.bashrc</code> or <code>.bash_profile</code> file:
  <code>export PATH=$PATH:<em>&lt;your_new_sdk_dir></em>/tools</code></p>
  </li>
  <li>If (and only if) you are developing using Ant, you will also need to modify 
  your build.xml properties to point to the new SDK. 
  <p>Open the <code>default.properties</code> file associated with your build.xml 
  file (typically located in the same directory). In the default.properties
  file, update the <code>sdk-folder</code> property with the full path to
  the new SDK directory.</p></li>
</ul>

<a name="Updating_the_ADT_plugin" id="Updating_the_ADT_plugin"></a>
<h2 id="update-plugin">Update your ADT Eclipse Plugin</h2>

<p>If you develop on Eclipse and are migrating from an Android 1.0
SDK, no update of the ADT plugin is needed. </p>

<p>If you are migrating from an earlier version of the SDK, you will
need to update the ADT plugin. <p>You may also want to upgrade your 
ADT plugin when a new version becomes available for your existing version 
of the SDK.</p>

<p>The steps below describe how to update the ADT plugin to the latest
version available. </p>

<table style="font-size:100%">
<tr><th>Eclipse 3.3 (Europa)</th><th>Eclipse 3.4 (Ganymede)</th></tr>
<tr>
<td width="50%">
<ol>
    <li> Select <strong>Help</strong> &gt; <strong>Software Updates</strong> &gt; <strong>Find and Install...</strong>. </li>
    <li> Select <strong>Search for updates of the currently installed features</strong> and click <strong>Finish</strong>. </li>
    <li> If any update for ADT is available, select and install. </li>
    <li> Restart Eclipse.</li>
</ol>
<p> Alternatively, </p>
<ol>
    <li> Select <strong>Help</strong> &gt; <strong>Software Updates</strong> &gt; <strong>Manage Configuration</strong>. </li>

    <li> Navigate down the tree and select <strong>Android Development Tools &lt;version&gt;</strong> </li>
    <li> Select <strong>Scan for Updates</strong> under <strong>Available Tasks</strong>.</li>
</ol>
</td>
<td>
<ol>
    <li>Select <strong>Help</strong> &gt; <strong>Software Updates...</strong></li>
    <li>Select the <strong>Installed Software</strong> tab.</li>
    <li>Click <strong>Update...</strong></li>
    <li>If an update for ADT is available, select it and click <strong>Finish</strong>.</li>
    <li>Restart Eclipse.</li>
</ol>
</td>
</tr>
</table>

<p>After restart, update your Eclipse preferences to point to the SDK directory:</p>
    <ol>
      <li>Select <strong>Window</strong> > <strong>Preferences...</strong> to open the Preferences panel. (Mac OSX: <strong>Eclipse</strong> > <strong>Preferences</strong>)</li>
      <li>Select <strong>Android</strong> from the left panel.</li>
      <li>For the SDK Location in the main panel, click <strong>Browse...</strong> and locate the SDK directory.</li>
      <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
    </ol>


<!--
<h2 id="sign">Set Up Application Signing</h2>

<p>All applications must now be signed before you can install them on the emulator. Both 
the ADT plugin and the Ant-based build tools support this requirement by signing compiled 
.apk files with a debug key. To do so, the build tools use the Keytool utility included 
in the JDK to to create a keystore and a key with a known alias and password. For more 
information, see <a href="{@docRoot}guide/publishing/app-signing.html">Signing Your Applications</a>.

<p>To support signing, you should first make sure that Keytool is available to the SDK build 
tools. In most cases, you can tell the SDK build tools how to find Keytool by making sure that 
your JAVA_HOME environment variable is set and that it references a suitable JDK. Alternatively, 
you can add the JDK version of Keytool to your PATH variable.</p>

<p>If you are developing on a version of Linux that originally came with Gnu Compiler for Java, 
make sure that the system is using the JDK version of Keytool, rather than the gcj version. 
If keytool is already in your PATH, it might be pointing to a symlink at /usr/bin/keytool. 
In this case, check the symlink target to make sure that it points to the keytool in the JDK.</p>

<p>If (and only if) you use Ant to build your .apk files (rather than ADT for Eclipse), you must regenerate 
your build.xml file. To do that, follow these steps:</p>
<ol>
  <li>In your Android application project directory, locate and delete the current build.xml file.</li>
  <li>Run activitycreator, directing output to the folder containing your application project.

<pre>- exec activitycreator --out &lt;project folder&gt; your.activity.YourActivity</pre>

  </li>
</ol>

<p>Run in this way, activitycreator will not erase or create new Java files (or manifest files), 
provided the activity and package already exists. It is important that the package and the activity 
are real. The tool creates a new build.xml file, as well as a new directory called "libs" in which 
to place 3rd jar files, which are now automatically handled by the Ant script.</p>
-->

<h2 id="migrate">Migrate Your Applications, if Necessary</h2>

<p>If (and only if) you have written apps in an SDK released previous to
the Android 1.0 SDK, you will need to migrate your applications. After
installing the new SDK and updating the ADT Plugin (if applicable), you
may encounter breakages in your application code, due to 
framework and API changes. You'll need to update your code to match the
latest APIs.</p>

<p>One way to start is to open your project in Eclipse and see where the ADT
identifies errors in your application. From there, you can lookup
specific API changes in the Android 1.0 APIs in the 
<a href="http://code.google.com/android/migrating/changes-overview.html">
Overview of Changes</a> and <a href="http://code.google.com/android/migrating/changes.html">
API Diffs Report</a>.</p>

<p>If you have additional trouble updating your code, visit the 
<a href="http://groups.google.com/group/android-developers">Android Developers Group</a>
to seek help from other Android developers.</p>

<p>If you have modified one of the ApiDemos applications and would like to migrate it 
to the new SDK, note that you will need to uninstall the version of ApiDemos that comes 
preinstalled in the emulator. For more information, or if you encounter an "reinstallation" 
error when running or installing ApiDemos, see the troubleshooting topic 
<a href="{@docRoot}guide/appendix/faq/troubleshooting.html#apidemosreinstall">I can't install ApiDemos 
apps in my IDE because of a signing error</a> for information about how to solve the problem.</p>

