How to attach javadoc or sources to jars in libs folder?

New version of ADT r17 plugin for Eclipse added feature to automatically setup JAR dependencies. Any .jar files in the /libs folder are added to the build configuration now. Unfortunately Android Dependencies classpath container is non modifiable.

不可修改的Android依赖关系类路径

How can i attach javadoc and sources to the automatically inserted .jar (from /libs folder)?


The best way to answer your question is to summarize the answers from Xavier, plastiv, VinceFR and Christopher.

Step by step guide

In order to link the sources and javadoc to a .jar library that is automatically linked by Eclipse you have to do the following:

  • Place the library .jar file in the libs folder, and the associated source .jar and doc .jar files in separate subfolders such as libs/src and libs/docs. You can use a name other than src and docs if you want, but it's important that the .jar files aren't directly in the libs folder.
  • Create a .properties file in the libs folder with the exact name of the actual library .jar (see example). Make sure you keep the .jar part.
  • Specify the relative paths to the sources and javadoc .jar in the .properties file.
  • Close and re-open the Eclipse project! Optionally, refresh the project by pressing F5.
  • Select an object of the linked library in the source code.
  • Open the Javadoc view in Eclipse to check the documentation (see screenshot).
  • Open the source code declaration (default shortcut: F3) of the selected object.

  • Example

    The example uses the Gson library.

    Directory structure of the libs folder:

    libs
    ├── docs
    │   └── gson-2.2.2-javadoc.jar
    ├── gson-2.2.2.jar
    ├── gson-2.2.2.jar.properties
    └── src
        └── gson-2.2.2-sources.jar
    

    Contents of gson-2.2.2.jar.properties

    src=src/gson-2.2.2-sources.jar
    doc=docs/gson-2.2.2-javadoc.jar
    


    Additional information

    You can of course move the javadoc and sources .jar into other folders and specify relative paths. That's up to you. Placing the source and javadoc jars directly into the lib folder is possible but not recommended , as that causes documentation and source code to be included in your application .


    Screenshot of the Eclipse JavaDoc panel:

    Eclipse中的JavaDoc视图

    Screenshot of an Eclipse project using Gson with Android 4.2.2.:

    Eclipse测试项目截图


    Referencing unpacked javadocs

    In case you want to reference javadocs which are not provided as a packed .jar but simply as files and folders as asked by android developer in the comments do the following:

  • Place the library .jar in the libs/ folder
  • Create a yourlibraryname.jar.properties file (don't forget the .jar ) with the following content:

     doc=docs
    
  • Add the javadocs folders to the libs/ folder.

  • You should come up with the following folder structure:

    ├── docs
    │   ├── allclasses-frame.html
    │   ├── allclasses-noframe.html
    │   ├── com
    │   │   └── google
    │   │       └── ads
    │   │           ├── Ad.html
    │   │           │   ....
    │   │           └── package-tree.html
    │   │   ...
    │   └── stylesheet.css
    ├── GoogleAdMobAdsSdk-6.4.1.jar
    └── GoogleAdMobAdsSdk-6.4.1.jar.properties
    

    Do not forget to close and re-open the Eclipse project as mentioned above! Here is a screenshot of a working example project referencing the GoogleAdMobAds Android library.

    GoogleAdMobAds Android库Eclipse项目


    On windows you have to escape the backslash for references to doc and src paths in the properties file. Example, for android-support-v4.jar the properties file content is something like:

    doc=C:Program Files (x86)Androidandroid-sdkextrasandroidsupportv4docs
    src=C:Program Files (x86)Androidandroid-sdkextrasandroidsupportv4src
    

    An answer come from http://code.google.com/p/android/issues/detail?id=27490#c21

    In your libs folder, you must have:

    doc(folder)
        foo_doc(folder)
            index.html
            ...
            ...
    foo.jar
    foo.jar.properties
    

    And in your foo.jar.properties , just put doc=./doc/foo_doc

    Maybe you will have to refresh your project, to clean it, to close it and to reopen it.

    It works for me!

    链接地址: http://www.djcxy.com/p/88668.html

    上一篇: 印地语在tcpdf上显示不正确

    下一篇: 如何将javadoc或源文件附加到libs文件夹中的jar文件中?