Android Studio:如何附加javadoc

这可能是一个非常微不足道的问题,但我找不到任何选项来附加javadoc /源与本地jar依赖项(在libs文件夹)在Android项目。 我不敢相信我花了一个小时在这样简单的东西:(

谷歌search结果只是讲述添加android文档或在eclipse中添加javadoc。 那不是我正在寻找的!

我刚刚find了一个解决scheme,因为很长一段时间我找不到任何其他解决scheme。

假设:

  1. 你的lib名字是:libxxx.jar
  2. javadoc名称是docs.zip

在.idea / libraries文件夹下,你可以findlibxxx.xml。 replaceJAVADOC

<JAVADOC> <root url="jar://C:/yourpath/doc.zip!/" /> </JAVADOC> 

然后按Ctrl + Alt + Y同步项目。 (不要做“与Gradle文件同步项目”,它会删除更改)

我发现并testing了一种方法,我们可以在gradle同步之后添加javadoc而不会丢失它们。

  1. 右键单击“ 项目”面板 >“ 外部库” >“ lib-name”
  2. 单击库属性 Lib道具
  3. 点击指定文档URL
  4. 并指定一个URL。 对于我的机器,它是file:///opt/android-sdk/extras/google/google_play_services/docs/reference 添加文档网址
  5. 结果是: 添加jdoc
  6. 在项目同步后,我可以浏览谷歌播放服务的javadoc 谷歌播放服务地图javadoc

注意:

这在Jason所标识的xml中放置了相同的JAVADOC条目,但是在与gradle同步之后不会消失

有可能的:

  1. 打开Project structure
  2. 导航到所需的依赖关系
  3. 按下屏幕截图上的button,提供文件夹或文件

屏幕截图1

另一种方法来源:

  1. 从图书馆步入课程(将鼠标hover在课程名称上,并执行CMD +左键或CMD + B)
  2. 你会在编辑器的右上方看到反编译的类的菜单“Attach sources ..”

截图2

目前仍然是我发布的问题:

https://code.google.com/p/android/issues/detail?id=73087

经过一番调查,我偶然发现:

https://github.com/xujiaao/AARLinkSources

像魔术一样工作!

我从Matyas的回答中遇到了问题,我没有看到External Libraries列表中的本地.jar库,因为它只显示maven附加库。

解决方法在这里提到: https : //code.google.com/p/android/issues/detail?id=73087#c26

  1. 右键单击“结构”选项卡并选中“分割模式”(这样可以同时打开“项目”和“结构”选项卡)。
  2. 同时打开“项目”和“结构”选项卡。
  3. 在“项目”选项卡中select“Android”的angular度,然后select你的模块文件夹(例如“应用程序”)
  4. 在“结构”窗口中,您现在应该看到所有库的列表,包括您的本地* .jar

按照Matyas的回答继续:

  1. 右键单击想要的库,然后select“库属性…”
  2. 如果你在本地有javadocs文件,你可以点击“添加”button(绿色的“+”)并在你的磁盘上search文件(你不必手动input“file://”path)。

我也浪费了太多时间

这是一个gradle任务,它通过位置/命名约定来查找源代码和javadoc,并将其注册到.idea文件中进行同步。 它属于根gradle文件的allProjects部分。 按照原样 ,它希望在lib-sources.jar和/或lib-javadoc.jar旁边find[projectname] /libs/lib.jar 。 另外,如注释中所述,如果你的javadoc没有在jar中的“/”处打开,你可能需要改变脚本在“jar:// $ doc!”结尾添加“docs / html” /“

 allprojects { task addJavaDoc { afterEvaluate { // Specify paths, this will be run per non-root project def projectDir = project.getProjectDir().getCanonicalPath() def rootDir = project.getRootDir().getCanonicalPath() def lib = projectDir + '/libs' // println lib // Uncomment this to troubleshoot // Get any jar dependencies register in the lib folder fileTree(include: ['*.jar'], exclude: ['*-source.jar', '*-javadoc.jar'], dir: lib ).each { File jar -> def jarName = jar.getName() def moduleName = jarName.substring(0, jarName.lastIndexOf(".")) // IntelliJ does this to file names when making the xml files def escapedName = moduleName.replace("-", "_").replace(".", "_") def xmlFile = "$rootDir/.idea/libraries/${escapedName}.xml" // println xmlFile // Uncomment this to troubleshoot if (new File(xmlFile).exists()) { ['javadoc', 'sources'].each {String docType -> // Get sources or java doc by naming convention, (expects name-sources or name-javadoc def doc = "$lib/$moduleName-${docType}.jar" // println doc // Uncomment this to troubleshoot if(new File(doc).exists()) { def xml = new XmlParser().parse(xmlFile); def xmlTag = docType.toUpperCase() // Perform xml replacement by convention xml.library[xmlTag].replaceNode { "$xmlTag" { root(url: "jar://$doc!/") } } // Write out changes new XmlNodePrinter(new PrintWriter(new FileWriter(xmlFile))).print(xml) // Notify that changes worked println "Fixed up reference to $doc" } } } } } } } 

另外,如果您使用jcenter或mavencentral,javadoc和源应该可以在不使用该任务的情况下为下载的jar工作,但是您可能需要在每个非根gradle文件中添加它:

 apply plugin: 'idea' idea{ module { downloadJavadoc = true downloadSources = true } } 

有一个解决办法,这个程序是通过terminal发生的,

我已经在MAC OS上testing了解决scheme。

1)移动到你的项目文件夹

2) ls -al (显示隐藏文件)

3)移至.idea文件夹,命令:cd .idea

4)移动到libraries文件夹,命令:cd库/

5)现在你可以看到你的libs或jar的所有xml文件列表。 像vi open androidasync_2_1_7.xml一样编辑它, vi open androidasync_2_1_7.xml

6)在编辑器屏幕上,用于插入

 Press i 

现在你看到<SOURCES />标签,我们必须在这里提供一个path,

 <SOURCES> <root url="file://$PROJECT_DIR$/androidasync/src/main/java" /> </SOURCES> 

退出

 Press Esc :wq //for exiting and saving :q! //for exiting without saving 

7)重新启动Android工作室(有时它也需要同步gradle)。

亲自testing成功!

1.项目结构(ctrl + alt + shift + s)

2.SDK位置

3.JDK位置

4.UnCheck“使用embedded式JDK(推荐)”

5.select你自己的jdkpath(我的path:C:\ Program Files \ Java \ jdk1.8.0_111)

6.Synchronized(Ctrl + Alt + y)的

成功

在android studio中,如果您在buidl.gradle中使用了compileSdkVersion 23 ,并且您已经在SDK manager下载了SDK 23文档文件和源文件,则android API和java API doc和source将全部显示为auto, 您不需要手动设置。