Eclipse中的Javadoc无法识别包

35
感谢这个帖子,我能够在Windows上的Eclipse中为我的Android项目启用Javadoc链接。具体来说,"{@link android.widget.Toast}"目前被转换为链接"http://d.android.com/reference/android/widget/Toast.html?is-external=true"。我使用了以下Javadoc选项来实现这一点:

-linkoffline http://d.android.com/reference "file:/C:/Android/android-sdk-windows/docs/reference"

但是,根据我的Java代码行(而不是Javadoc注释),我会出现以下错误:

C:\Users\Ellen\workspace\TestableToast\src\edu\mills\cs180\HelloAndroid.java:5: 
package android.view does not exist
import android.view.View;
                   ^ 
C:\Users\Ellen\workspace\TestableToast\src\edu\mills\cs180\HelloAndroid.java:6: 
package android.view.View does not exist 
import android.view.View.OnClickListener;
                        ^ 
C:\Users\Ellen\workspace\TestableToast\src\edu\mills\cs180\HelloAndroid.java:8: 
package android.widget does not exist
import android.widget.Toast;
                      ^ 
C:\Users\Ellen\workspace\TestableToast\src\edu\mills\cs180\HelloAndroid.java:10: 
cannot find symbol symbol: class Activity 
public class HelloAndroid extends Activity implements OnClickListener {
                                  ^

我该如何修复这些引用?

8个回答

83

以下是我在Eclipse中的操作:

  1. 选择"项目 --> 生成Javadoc"
  2. 进入"配置Javadoc参数"
  3. 在VM选项中添加"-bootclasspath /path/to/sdk/platforms/android-##/android.jar"

一样的情况。谢谢! :) - luthier
对我来说,它可以不用引号工作。引号会生成未识别的标签错误。 - Artur Szymański
3
顺便说一句,这也适用于Android Studio。我只是使用了 -bootclasspath /Users/username/Library/Android/sdk/platforms/android-22/android.jar,毫无问题地为我的Android库项目生成了JavaDoc。 - bmeulmeester
这个方案适用于单个开发人员,但不适用于整个团队。有没有一种解决方案,而不需要硬编码本地路径?我能添加到gradle构建任务中以动态公开类路径的东西吗? - rickul

40

在“生成Javadoc…”向导的最后一个屏幕中添加-classpath参数对我没有用:我收到了一条错误消息,提示-classpath参数只能指定一次。

虽然不是真正的解决方案,但可以通过以下方法解决:

  • 在“生成Javadoc…”向导中,选中“将此Javadoc导出的设置保存为Ant脚本”的选项。这将在项目目录中生成javadoc.xml文件。
  • 编辑javadoc.xml文件并编辑classpath属性。具体地,在其中添加"/path/to/sdk/platforms/android-##/android.jar"以及任何其他您收到警告消息的jar包。
  • 使用以下命令生成javadoc:ant -buildfile javadoc.xml。为了方便,我将此行放入了一个javadoc.sh shell脚本中。

谢谢!我终于成功生成了我的Javadoc。值得一提的是,您可以从Eclipse Ant视图中执行buildfile(添加buildfile,然后运行它)。由于javadoc拒绝-buildfile参数,我不得不这样做。 - Eric Tobias
1
我遇到了同样的错误 - 但是,如果你把“-classpath”改成“-bootclasspath”,那么它就可以正常工作了。 - Sandy D.

7

项目 > 生成 Javadoc。然后,进入“配置 Javadoc 参数”,在 VM 选项中添加“-bootclasspath /path/to/sdk/platforms/android-##/android.jar”。

对我很有用 :)


7

您需要将 Android 类添加到 javadoc 的类路径中,方法是将 android jar 文件添加到 javadoc 的 -classpath 参数中(就像您为编译器所做的那样)。

我不清楚 Eclipse 是否会提供此配置选项。


4
谢谢!这样做就可以了。在“生成Javadoc…”向导的最后一个界面中可以指定命令行选项,所以我添加了“-classpath"C:/Android/android-sdk-windows/platforms/android-4/android.jar"”。 - Ellen Spertus
我收到一个错误信息:"javadoc: error - The -classpath option may be specified no more than once., error now." - basickarl
1
@KarlMorrison 如果你的命令行已经有了“-classpath…”选项,你不应该再添加另一个,而是将jar文件添加到现有的选项中(在Windows上用“;”分隔,在Unix系统上用“:”分隔)。 - Paŭlo Ebermann

4
感谢@PaŭloEbermann和@MarcelD-B提供的答案,我能够理解问题的根本原因。然而,由于我正在使用Android Studio,对于在哪里添加参数argument有些困惑。经过一段时间的研究,我最终找到了方法,并将其作为答案放在这里,以供其他遇到类似问题的人参考。
对于Android Studio,请打开Tools > Generate JavaDocs,并在Other command line arguments:中添加以下argument-
-bootclasspath /path/to/sdk/platforms/android-##/android.jar

注意:参数中不需要添加任何逗号。但是,如果您的SDK路径中包含空格,请使用双引号(")将路径括起来。例如:我的SDK路径包含空格,所以我使用了这个参数

-bootclasspath "F:\Android SDK\platforms\android-21\android.jar"

JavaDoc generation screen on Android Studio


3

以上的答案都非常好!在你的 javadoc.xml 文件中包含 classpath 并通过 ant 命令或 eclipse -> Run As -> Ant Build 运行。

但请确保路径中没有空格!我曾经用 C:/Program Files/... 遇到了这个问题,直到我将它改为 C:/Progra~1/... 才起作用。

同时,将路径放入引号中对我来说也不起作用。


2

Windows Eclipse解决方案

android.jar添加到-classpath确实是正确的方法。虽然也可以使用ANT,但不必要。如果您想使用Eclipse GUI(文件->导出->Java->Javadoc)生成Javadoc,那么在对话框中没有编辑类路径的选项。您需要事先正确设置类路径。有两种方法可以实现:

  1. Edit manually the <path_to_your_project>/.classpath and add the following line:

    <classpathentry kind="lib" path="<path_to_your_android_skd>/platforms/android-<version>/android.jar"/>
    
  2. Right click on your project->Properties->Java Build Path->Libraries->Add External JARs->navigate to <path_to_your_android_skd>/platforms/android-<version>/android.jar

我发现Eclipse图形界面的方法比在此处一些答案中提到的使用ANT更好,因为您可以在控制台中的任何Javadoc警告/错误上获得源代码的可点击引用。当使用ANT时,在控制台中只会得到javadoc.exe命令的打印输出。


1

我在Eclipse中使用了以下解决方法:

  1. 进入“项目”=>“属性”,选择“Java Build Path”
  2. 选择“顺序和导出”选项卡
  3. 将“android 2.x.x”和“Android Dependencies”移动到列表的顶部

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接