a little madness

A man needs a little madness, or else he never dares cut the rope and be free -Nikos Kazantzakis

Zutubi

Android: Attaching Sources to Libraries in Eclipse

Since ADT r17, Android projects in Eclipse have had a nice property: all jars in your libs directory have been automatically picked up by Eclipse projects under a magic “Android Dependencies” entry in the build path. Ant builds use the same conventions, so adding a library is as simple as dropping it into the right directory. Unfortunately, though, this magic came with a major limitation: there was no way to attach sources to these libraries (see issue 27940). This led me to duplicate build path entries manually just to get source attachments.

Good news: in the just-released r20 version of ADT, Google have provided a solution to this problem. It’s not well advertised, but if you check out comment 21 on the aforementioned issue, you see that by creating a properties file for each library, you can tell ADT where to find the sources. So, for example, if you have a jar named:

some-library-1.0.jar

you can create a properties file alongside it named:

some-library-1.0.jar.properties

Within the properties file you can add a src property set to the relative (or absolute, but that’s version-control-unfriendly) path of the source jar, zip or directory. Say, like me, you put it in the libs/src subdirectory, your properties file might look like:

src=src/some-library-1.0-sources.jar

Once you’ve added the properties file, refresh the project in Eclipse and voilĂ : the sources will be attached! A similar property named doc is supported for javadoc attachments.

Although this new feature is very welcome, I feel like it could use a bit more fine tuning. The main issue is the need to create a separate properties file for each jar. I keep my source jars in predictable locations, with conventional names, so I should be able to configure the convention once and have everything Just Work from then on. Heck, I’m not sure why there isn’t a default convention, which I could just follow with no further configuration!

Liked this post? Share it!

3 Responses to “Android: Attaching Sources to Libraries in Eclipse”

  1. January 31st, 2013 at 6:00 pm

    Attaching source code to Android libraries. | Stephen Asherson says:

    [...] Attaching Source to Libraries in Eclipse [...]

  2. February 12th, 2013 at 12:49 am

    | Attaching Source Code to Android Libraries says:

    [...] Attaching Source to Libraries in Eclipse [...]

  3. July 26th, 2014 at 12:55 am

    San Diego Personal Injury Lawyer says:

    Sorting fact from fiction is of the utmost importance.

    Legal documents called claims, pleadings, and motions are
    normally prepared to file with the court to protect your rights
    and maximize your chances of obtaining a full and complete settlement or verdict.

    Denial of a person’s No-Fault claim means that
    the work the injury lawyer did in setting up the case will be easily transferable to filing the case in court and prosecuting
    a First Party No-Fault Action against the insurance company for lost wages or
    other benefits that were wrongfully denied by the insurance
    company.

Leave a Reply