summaryrefslogtreecommitdiffstats
path: root/docs/html/sdk/installing/migrate.jd
blob: d982939510c9afe0766bf1b8b5d9b6bba3890378 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
page.title=Migrating to Android Studio

@jd:body

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


<h2>In this document</h2>
<ol>
  <li><a href="#overview">Migration Overview</a></li>
  <li><a href="#prerequisites">Migration Prerequisites</a></li>
  <li><a href="#migrate">Importing Projects to Android Studio</a></li>
  <li><a href="#post-migration">Validating imported projects</a></li>
</ol>


<h2>See also</h2>
<ul>
  <li><a href="{@docRoot}tools/studio/eclipse-transition-guide.html">
    Transition Guide for Eclipse ADT</a></li>
  <li><a href="http://confluence.jetbrains.com/display/IntelliJIDEA/FAQ+on+Migrating+to+IntelliJ+IDEA"
    class="external-link">IntelliJ FAQ on migrating to IntelliJ IDEA</a></li>
  <li><a href="http://confluence.jetbrains.com/display/IntelliJIDEA/IntelliJ+IDEA+for+Eclipse+Users"
    class="external-link">IntelliJ IDEA for Eclipse users</a></li>
  <li><a href="{@docRoot}tools/studio/index.html">Android Studio Overview</a></li>
</ul>
</div>
</div>


<p>Migrating from Eclipse ADT to Android Studio requires adapting to a new project structure,
build system, and IDE functionality. To simplify the migration process, Android Studio provides an
import tool so you can quickly transition your Eclipse ADT workspaces and Ant build scripts to
Android Studio projects and <a href="http://www.gradle.org">Gradle</a>-based build files.</p>

<p>This document provides an overview of the migration process and walks you
through a sample import procedure. For more information about Android Studio features and the
Gradle-based build system, see <a href="{@docRoot}tools/studio/index.html">Android Studio Overview</a>
and <a href="{@docRoot}tools/building/configuring-gradle.html">Configuring Gradle Builds</a>.</p>



<h2 id="overview">Migration Overview </h2>
<p>Migrating from Eclipse to Android Studio requires that you change the structure of your
development projects, move to a new build system, and use a new user interface. Here are some of
the key changes you should be aware of as you prepare to migrate to Android Studio:</p>
<ul>
  <li><strong>Project files</strong>
    <p>Android Studio uses a different project structure. Each Eclipse ADT
    project is called a module in Android Studio. Each instance of Android
    Studio contains a project with one or more app modules. For more information see,
    <a href="{@docRoot}tools/studio/eclipse-migration-guide.html#project-structure">Project
    Structure</a>.</p></li>

  <li><strong>Manifest settings</strong>
    <p>Several elements in the <code>AndroidManifest.xml</code> file are now properties in the
    <code>defaultConfig</code> and <code>productFlavors</code> blocks in the
    <code>build.gradle</code> file. These elements are still valid manifest entries and may
    appear in manifests from older projects, imported projects, dependencies, and libraries. For
    more information see,
    <a href="{@docRoot}tools/studio/eclipse-migration-guide.html#manifest-settings">Manifest
    Settings</a>.</p></li>

  <li><strong>Dependencies</strong>
    <p>Library dependencies are handled differently in Android Studio, using Gradle dependency
    declarations and Maven dependencies for well-known local source and binary libraries with
    Maven coordinates.  For more information see,
    <a href="{@docRoot}tools/studio/eclipse-migration-guide.html#dependencies">Dependencies</a></p>
    </li>

  <li><strong>Test code</strong>
    <p>With Eclipse ADT, test code is written in separate projects and integrated through the
    <code>&lt;instrumentation&gt;</code> element in your manifest file. Android Studio provides a
    <code>AndroidTest</code> folder within your project so you can easily add and maintain your test
    code within the same project view. JUnit tests can also be configured to run locally to reduce
    testing cycles.</p></li>

  <li><strong>Gradle-based build system</strong>
    <p>In place of XML-based Ant build files, Android Studio supports Gradle build files, which
    use the Gradle Domain Specific Language (DSL) for ease of extensibility and customization.
    The Android Studio build system also supports
    <a href="{@docRoot}tools/building/configuring-gradle.html#workBuildVariants"> build variants</a>,
    which are combinations of <code>productFlavor</code> and <code>buildTypes</code>, to customize
    your build outputs.</p></li>

  <li><strong>User interface</strong>
    <p>Android Studio provides an intuitive interface and menu options based on the
    <a class="external-link" href="https://www.jetbrains.com/idea/" target="_blank">IntelliJ IDEA</a>
    IDE. To become familiar with the IDE basics, such as navigation, code completion, and keyboard
    shortcuts, see
    <a class="external-link" href="https://www.jetbrains.com/idea/help/intellij-idea-quick-start-guide.html"
    target="_blank">IntelliJ IDEA Quick Start Guide</a>.</p></li>

  <li><strong>Developer tools versioning</strong>
    <p>Android Studio updates independently of the Gradle-based build system so different build
    settings can be applied across different versions of command line, Android Studio, and
    continuous integration builds. For more information, see
    <a href="{@docRoot}tools/building/configuring-gradle.html">Configuring Gradle Builds</a>.</p>
    </li>
</ul>




<h2 id="prerequisites">Migration Prerequisites</h2>
<p>Before migrating your Eclipse ADT app to Android Studio, review the following steps to make
sure your project is ready for conversion, and verify you have the tool configuration you need in
Android Studio:</p>

<ul>
 <li>In Eclipse ADT:
   <ul>
     <li>Make sure the Eclipse ADT root directory contains the <code>AndroidManifest.xml</code>
       file. Also, the root directory must contain either the <code>.project</code> and
       <code>.classpath</code> files from Eclipse or the <code>res/</code> and <code>src/</code>
       directories.</li>
     <li>Build your project to ensure your latest workspace and project updates are saved and
       included in the import.</li>
     <li>Comment out any references to Eclipse ADT workspace library files in the
       <code>project.properties</code> or <code>.classpath</code> files for import. You can
       add these references in the <code>build.gradle</code> file after the import. For more
       information, see
       <a href="{@docRoot}tools/building/configuring-gradle.html">Configuring Gradle Builds</a>.</li>
     <li>It may be useful to record your workspace directory, path variables, and any actual path
       maps that could be used to specify any unresolved relative paths, path variables, and
       linked resource references. Android Studio allows you to manually specify any unresolved
       paths during the import process.</li>
   </ul>
 </li>
 <li>In Android Studio:
   <ul>
    <li>Make a note of any third-party Eclipse ADT plugins in use and check for equivalent features
      in Android Studio or search for a compatible plugin in the
      <a href="https://plugins.jetbrains.com/?androidstudio" class="external-link">IntelliJ Android
      Studio Plugins</a> repository. Use the <strong>File &gt; Settings &gt; Plugins</strong> menu
      option to manage plugins in Android Studio. Android Studio does not migrate any third-party
      Eclipse ADT plugins.</li>
    <li>If you plan to run Android Studio behind a firewall, be sure to set the proxy settings for
      Android Studio and the SDK Manager. Android Studio requires an internet connection for
      Setup Wizard synchronization, 3rd-party library access, access to remote repositories,
      <a href="http://www.gradle.org" class="external-link">Gradle</a>
      initialization and synchronization, and Android Studio version updates. For more information,
      see <a href="{@docRoot}tools/studio/index.html#proxy">Proxy Settings</a>.</li>
    <li>Use the <strong>File &gt; Settings &gt; System Settings</strong> menu option to verify the
      current version and, if necessary, update Android Studio to the latest version from the
      stable channel. To install Android Studio, please visit the
      <a href="{@docRoot}sdk/index.html">Android Studio download page</a>.</li>
    </ul>
  </li>
 </ul>



<h2 id="migrate">Importing Projects to Android Studio</h2>
<p>Android Studio provides a function for importing Eclipse ADT projects, which creates a new
Android Studio project and app modules based on your current
Eclipse ADT workspace and projects. No changes are made to your Eclipse project files. The Eclipse
ADT workspace becomes a new Android Studio project, and each Eclipse ADT project within the workspace
becomes a new Android Studio module. Each instance of Android Studio contains a project with one or
more app modules.</p>

<p>After selecting an Eclipse ADT project to import, Android Studio creates the Android
Studio project structure and app modules, generates the new Gradle-based build files and settings,
and configures the required dependencies. The import options also allow you to enter your workspace
directory and any actual path maps to handle any unresolved relative paths, path variables, and
linked resource references.</p>

<p>Depending on the structure of your Eclipse ADT development project, you should select specific
files for importing:</p>
<ul>
<li>For workspaces with multiple projects, select the project folder for each Eclipse ADT
  project individually to import the projects into the same Android Studio project. Android
  Studio combines the Eclipse ADT projects into a single Android Studio project with different app
  modules for each imported project.</li>

<li>For Eclipse ADT projects with separate test projects, select the test project folder for
  import. Android Studio imports the test project and then follows the dependency chain to import
  the source project and any project dependencies.</li>

 <li>If Eclipse ADT projects share dependencies within the same workspace, import each
   project individually into Android Studio. Android Studio maintains the shared dependencies
   across the newly created modules as part of the import process.</li>
</ul>

<p>To import a project to Android Studio:</p>

<ol>
 <li>Start Android Studio and close any open Android Studio projects.</li>
 <li>From the Android Studio menu select <strong>File &gt; New &gt; Import Project</strong>.
  <p>Alternatively, from the <em>Welcome</em> screen, select <strong>Import project
  (Eclipse ADT, Gradle, etc.)</strong>.</p></li>
 <li>Select the Eclipse ADT project folder with the <code>AndroidManifest.xml</code> file
   and click <strong>Ok</strong>.
   <p> <img src="{@docRoot}images/tools/studio-select-project-forimport.png" alt="" /></p>
 </li>
 <li>Select the destination folder and click <strong>Next</strong>.
   <p> <img src="{@docRoot}images/tools/studio-import-destination-dir.png" alt="" /></p></li>
 <li>Select the import options and click <strong>Finish</strong>.
   <p>The import process prompts to migrate any library and project dependencies to Android Studio,
   and add the dependency declarations to the <code>build.gradle</code> file. The import process
   also replaces any well-known source libraries, binary libraries, and JAR files that have known
   Maven coordinates with Maven dependencies, so you no longer need to maintain these dependencies
   manually. The import options also allow you to enter your workspace directory and any actual
   path maps to handle any unresolved relative paths, path variables, and linked resource
   references.</p>
   <p> <img src="{@docRoot}images/tools/studio-import-options.png" alt="" /></p></li>

 <li>Android Studio imports the app and displays the project import summary. Review the summary
   for details about the project restructuring and the import process.
    <p> <img src="{@docRoot}images/tools/studio-import-summary.png"/></p>
 </li>
</ol>

<p>After importing the project from Eclipse ADT to the new Android Studio project and module
structure, each app module folder in Android Studio contains the complete source set for that
module, including the {@code src/main} and {@code src/androidTest} directories, resources, build
file, and Android manifest. Before starting app development, you should resolve any issues shown in
the project import summary to make sure the project re-structuring and import process completed
properly.</p>



<h3 id="post-migration">Validating imported projects</h3>
<p>After completing the import process, use the Android Studio <strong>Build</strong> and
<strong>Run</strong> menu options to build your project and verify the output. If your project
is not building properly, check the following settings:</p>

<ul>
<ul>
  <li>Use the <strong>Android SDK</strong> button in Android Studio to launch the <a href=
  "{@docRoot}tools/help/sdk-manager.html">SDK Manager</a> and verify the installed versions of SDK
  tools, build tools, and platform match the settings for your Eclipse ADT project. Android Studio
  inherits the SDK Manager and JDK settings from your imported Eclipse project.
  </li>
  <li>Use the <strong>File &gt; Project Structure</strong> menu option to verify additional
    Android Studio settings:
   <ul>
     <li>Under <em>SDK Location</em> verify Android Studio has access to the correct SDK and
       JDK locations and versions. </li>
     <li>Under <em>Project</em> verify the Gradle version, Android Plugin version, and related
       repositories.</li>
     <li>Under <em>Modules</em> verify the app and module settings, such as signing configuration
       and library dependencies. </li>
   </ul>
 </li>
 <li>If your project depends on another project, make sure that dependency is defined properly in
  the <code>build.gradle</code> file in the app module folder.</li>
</ul>


<p>If there still are unexpected issues when building and running your project in Android
Studio after you have checked these settings, consider modifying the Eclipse ADT project and
re-starting the import process. Importing an Eclipse ADT project to Android Studio creates a new
Android Studio project and does not impact the existing Eclipse ADT project. </p>



<p>To get started using Android Studio, review the
<a href="{@docRoot}tools/studio/index.html">Android Studio</a> features and
<a href="http://www.gradle.org">Gradle</a>-based build system to become familiar with the new
project and module structure, flexible build settings, and other advanced Android development
capabilities. For a comparison of Eclipse ADT and Android Studio features and usage, see
<a href="{@docRoot}tools/studio/eclipse-migration-guide.html">Transitioning to Android Studio from
Eclipse</a>. For specific Android Studio how-to documentation, see the pages in the
<a href="{@docRoot}tools/workflow/index.html">Workflow</a> section.
</p>