The Jar of this class file belongs to container 'Android Dependencies' which does not allow modifications to source attachments on its entries The Jar of this class file belongs to container 'Android Dependencies' which does not allow modifications to source attachments on its entries android android

The Jar of this class file belongs to container 'Android Dependencies' which does not allow modifications to source attachments on its entries


There is an official solution to this:

Allow src/doc attachement for 3rd party jars in libs/

Since those jars are added dynamically through a classpath container, the devs cannot set the source path and the javadoc through Eclipse UI (container don't allow editing those). To fix this, and to make sure that both paths are picked up not only by the current project, but also by other projects (if the current project is a library project), the value is set by a file sitting next to the jar file. The file is name after the jar file, adding .properties at the end. For instance foo.jar -> foo.jar.properties It can currently contain 2 properties: src: relative or absolute path to the source folder (or archive). doc: relative or absolute path to the javadoc.

https://android-review.googlesource.com/#/c/35702/

EDIT: Explanation in Google I/O 2012 video

Example, for Joda-Time 2.1:

cd $PROJECT/libstouch joda-time-2.1.jar.properties

And insert the following, making sure the path is correct:

src=/Users/josh.oneal/SDKs/joda-time-2.1/joda-time-2.1-sources.jardoc=/Users/josh.oneal/SDKs/joda-time-2.1/joda-time-2.1-javadoc.jar

You can now right click your project in Eclipse and refresh, then Command / Ctrl + Click a class such as DateTime to view its source.


When you use eclipse, you can fix it by selecting your library project and go to Properties > Order and Export and move your src dependency above the gen dependency. You can also manually edit your .classpath file to do the same. Source attachments should work after you clean this project. Credits for figuring out the solution goes to NightCrawler