|
1 .. _build_androideclipse: |
|
2 |
|
3 ======================== |
|
4 Android Eclipse Projects |
|
5 ======================== |
|
6 |
|
7 The build system contains alpha support for generating Android Eclipse |
|
8 project files to aid with development. |
|
9 |
|
10 To generate Android Eclipse project files, you'll need to have a fully |
|
11 built and packaged tree:: |
|
12 |
|
13 mach build && mach package |
|
14 |
|
15 (This is because Eclipse itself packages an APK containing |
|
16 ``omni.ja``, and ``omni.ja`` is only assembled during packaging.) |
|
17 |
|
18 Then, simply generate the Android Eclipse build backend:: |
|
19 |
|
20 mach build-backend -b AndroidEclipse |
|
21 |
|
22 If all goes well, the path to the generated projects should be |
|
23 printed (currently, ``$OBJDIR/android_eclipse``). |
|
24 |
|
25 To use the generated Android Eclipse project files, you'll need to |
|
26 have a recent version of Eclipse (see `Tested Versions`_) with the |
|
27 `Eclipse ADT plugin |
|
28 <http://developer.android.com/tools/sdk/eclipse-adt.html>`_ |
|
29 installed. You can then import all the projects into Eclipse using |
|
30 *File > Import ... > General > Existing Projects into Workspace*. |
|
31 |
|
32 Updating Project Files |
|
33 ====================== |
|
34 |
|
35 As you pull and update the source tree, your Android Eclipse files may |
|
36 fall out of sync with the build configuration. The tree should still |
|
37 build fine from within Eclipse, but source files may be missing and in |
|
38 rare circumstances Eclipse's index may not have the proper build |
|
39 configuration. |
|
40 |
|
41 To account for this, you'll want to periodically regenerate the |
|
42 Android Eclipse project files. You can do this by running ``mach build |
|
43 && mach package && mach build-backend -b AndroidEclipse`` from the |
|
44 command line. It's a good idea to refresh and clean build all projects |
|
45 in Eclipse after doing this. |
|
46 |
|
47 In future, we'd like to include an Android Eclipse run configuration |
|
48 or build target that integrates updating the project files. |
|
49 |
|
50 Currently, regeneration rewrites the original project files. **If |
|
51 you've made any customizations to the projects, they will likely get |
|
52 overwritten.** We would like to improve this user experience in the |
|
53 future. |
|
54 |
|
55 Troubleshooting |
|
56 =============== |
|
57 |
|
58 If Eclipse's builder gets confused, you should always refresh and |
|
59 clean build all projects. If Eclipse's builder is continually |
|
60 confused, you can see a log of what is happening at |
|
61 ``$OBJDIR/android_eclipse/build.log``. |
|
62 |
|
63 If you run into memory problems executing ``dex``, you should |
|
64 `Increase Eclipse's memory limits <http://stackoverflow.com/a/11093228>`_. |
|
65 |
|
66 The produced Android Eclipse project files are unfortunately not |
|
67 portable. Please don't move them around. |
|
68 |
|
69 Structure of Android Eclipse projects |
|
70 ===================================== |
|
71 |
|
72 The Android Eclipse backend generates several projects spanning Fennec |
|
73 itself and its tests. You'll mostly interact with the *Fennec* project |
|
74 itself. |
|
75 |
|
76 In future, we'd like to expand this documentation to include some of |
|
77 the technical details of how the Eclipse integration works, and how to |
|
78 add additional Android Eclipse projects using the ``moz.build`` |
|
79 system. |
|
80 |
|
81 Tested Versions |
|
82 =============== |
|
83 |
|
84 =============== ==================================== ================= |
|
85 OS Version Working as of |
|
86 =============== ==================================== ================= |
|
87 Mac OS X Luna (Build id: 20130919-0819) February 2014 |
|
88 Mac OS X Kepler (Build id: 20131219-0014) February 2014 |
|
89 Mac OS X 10.8.5 Kepler (Build id: 20130919-0819) February 2014 |
|
90 =============== ==================================== ================= |