自从昨天发布 SDK API 16 和 SDK 工具 R20 以来,我一直无法使用新工具的组合,能够在 Eclipse 中看到 javadoc 悬停并能够从命令进行 Ant 构建行。
当 R17 工具发布时,有必要将所有第 3 方 jar 放在新的 libs 目录中。不幸的是,这意味着您无法在其中指定 jar 的 javadoc 的位置。广泛使用的解决方法是将 jars 放在另一个文件夹中,在构建属性中指定并导出它。在 R20 出现之前,这对我一直有效。
在最简单的示例中,我的 build.xml 是来自新创建的示例项目的标准文件,只是从属性文件中传递了项目名称。 (我将 jar 放在“lib”目录中)
我有一个 ant.properties 文件,格式如下:
projectname=MyProject
jar.libs.dir=lib
build.sysclasspath=last
workspace.dir=/dev/projects/EclipseIndigo/AndroidWorkTwo
outbasebase.dir=/dev/projects/AntBuilds
base.dir=${workspace.dir}/${projectname}
source.dir=${base.dir}/src
outbase.dir=${outbasebase.dir}/${projectname}
ant.project.name=${projectname}
out.dir=${outbase.dir}/bin
layout.dir=${base.dir}/res/layout
key.store=<hidden>
key.alias=<hidden>
key.store.password=<hidden>
key.alias.password=<hidden>
这现在在 Ant 命令行构建(ant 发布)中的编译目标失败,因为它找不到 jar 中的类。 设置 project.all.jars.path 和 tested.project.classpath 的各种组合也不会使其工作。
有没有人对恢复旧功能有任何建议?
尽管 this issue 的评论 21 中有评论,如果 jars 在库中,则添加 .properties 文件不会启用 javadoc。 (尽管将 jars 放在 libs 中仍然可以使我的自定义 build.xmls 与 Ant 一起工作,所以这就是问题所在!)似乎修复库项目和测试机制的复杂集成被认为很重要,同时破坏了基本功能,如 javadocs 支持可以安全地忽略 IDE。
最佳答案
我发现唯一有效的是答案 here .
我将它添加到我的 custom_rules.xml
模板中,它似乎工作正常。
在我们得到更好的解决方案之前,我认为它只比向 ant.properties
文件添加路径多几行。
<target name="-pre-compile">
<path id="project.all.jars.path">
<path path="${toString:project.all.jars.path}"/>
<fileset dir="${jar.libs.dir}">
<include name="*.jar"/>
</fileset>
</path>
</target>
关于Android SDK 工具 R20,第 3 方库和 Ant 构建的 javadoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11251438/