2010-01-20 5 views
23

J'espérais que quelqu'un pourrait m'aider à générer un javadoc pour mon projet eclipse. Lorsque je sélectionne « Générer Javadoc » dans le menu projet, je reçois beaucoup d'erreurs commeGénérer un Javadoc pour mon projet Android

cannot find symbol 
symbol : class ListView 

chaque fois une classe référence à une classe API Android, donc je ne reçois que Javadocs émis pour les classes qui ne font pas référence choses android api . Mon application compile et s'exécute correctement et sur la configuration du projet, la librairie Android 1.6 est présente (dans le chemin de compilation - section des jars externes).

Des idées ce que je fais mal?

Merci.

Dori

Répondre

18

J'ai pu générer des Javadocs pour toutes mes classes en m'assurant que le composant "Documentation for Android SDK" était installé dans le SDK Android et le gestionnaire AVD, et en sélectionnant android.jar comme archive de référence à l'étape 2 de la génération Javadoc.

Il n'a pas généré de liens vers les documents de référence, mais il a créé des documents pour toutes mes classes.

3

Certes, il y a un problème générant Android javadoc d'Eclipse. J'ai trouvé une solution à l'aide maven et le plugin javadoc avec la configuration (pom.xml) suivante:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>group</groupId> 
    <artifactId>artifact</artifactId> 
    <version>0.0.5-SNAPSHOT</version> 
    <build> 
    <sourceDirectory>src</sourceDirectory> 
    <plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-javadoc-plugin</artifactId> 
    <version>2.6.1</version> 
    <configuration> 
    <links> 
    <link>file:/opt/android-sdk/docs/reference/</link> 
    </links> 
    </configuration> 
    </plugin> 
</plugins> 
    </build> 
    <dependencies> 
    <dependency> 
     <groupId>android</groupId> 
     <artifactId>android</artifactId> 
     <version>1.5</version> 
     <scope>provided</scope> 
    </dependency> 
     </dependencies> 
</project>  

adapter votre répertoire android sdk (/opt/android-sdk/ dans l'exemple). Les bibliothèques Android doivent également être disponibles dans votre référentiel maven local, vous pouvez utiliser le script android-mvn-install pour les installer.

Une fois cette pom.xml est dans votre répertoire racine du projet, vous serez en mesure de Run As -> build Maven ... et configurer un javadoc: javadoc but (à condition que l'éclipse a plugin m2eclipse installé). Par défaut, la sortie sera dans le répertoire target.

12

J'étais un peu têtu, et n'a pas Maven setup ... je espère que ce message aide quelqu'un d'autre qui est dans le même bateau. Après un peu d'essai et d'erreur (et beaucoup de suggestions glanées à partir de plusieurs recherches sur le Web), j'ai pu obtenir ce travail avec un script ANT spécifique, qui peut être exécuté dans Eclipse par "Exécuter en tant que - Ant Build". ".

J'ai enregistré ce fichier, "javadoc.xml", dans le répertoire de mon projet, en parallèle avec le fichier AndroidManifest.xml.

Voici le contenu du fichier:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<project basedir="." default="doc" name="api docs"> 
<target name="doc" description="my docs"> 
    <javadoc destdir="docs" doctitle="Testing the Title" verbose="on" 
     use="true" 
     classpath="C:\Android\android-sdk_r04-windows\android-sdk-windows\platforms\android-2.1\android.jar;.\libs\admob-sdk-android.jar" 
     sourcepath="gen;src" 
     linkoffline="http://d.android.com/reference C:\Android\android-sdk_r04-windows\android-sdk-windows\docs\reference" 
     stylesheetfile="C:\Android\android-sdk_r04-windows\android-sdk-windows\docs\assets\android-developer-docs.css" 
     > 
    </javadoc> 
</target> 
</project> 
+1

Merci beaucoup pour votre approche suggérée. Enfin, j'ai été en mesure de générer javadoc pour mes projets Android – Amir

9

Ce qui a fonctionné pour moi a été la mise à l'classpath android.jar.Dans Eclipse: project -> generate javadoc -> 3ème étape sous "options javadoc supplémentaires". Par exemple.

-classpath "C:\android-sdk-windows\platforms\android-11\android.jar" 
+1

Cela a fonctionné pour moi, merci! – Cesar

+1

indique que l'option classpath peut être spécifiée une seule fois. – njzk2

+0

Erreur "javadoc: erreur - L'option -classpath peut être spécifiée pas plus d'une fois." –

7

Et pour les utilisateurs Ant sans chemin hardcoded (pour r20 android sdk)

<target name="javadoc" depends="-set-debug-mode,-build-setup"> 

    <echo>Generating javadoc</echo> 

    <property name="project.target.class.path" refid="project.target.class.path"/> 
    <property name="project.all.jars.path" refid="project.all.jars.path"/> 

    <javadoc access="private" 
     classpath="${project.target.class.path}:${project.all.jars.path}" 
     destdir="docs" 
     packagenames="${project.app.package}.*" 
     source="1.5" sourcepath="gen:src" /> 
</target> 
+0

Pouvez-vous expliquer comment ajouter le résultat à un .jar dans ma bibliothèque? – Aracem

+1

vous pouvez lire la réponse http://stackoverflow.com/a/4080228/289686 le résumé est, il suffit d'ajouter une autre cible pour emballer le dossier docs dans le pot – logcat

+3

+1 Voici comment * devrait * être fait. Avoir des chemins locaux codés en dur va mener au désastre. –

0

Dans le cas où quelqu'un court d'autre sur cette question: Android a changé le nom de la feuille de style de documentation de « Android- developer-docs.css 'à' doclava-developer-docs.css 'dans la version r21 du kit ADT SDK. Je ne sais pas exactement quand le changement s'est produit, et nous avons juste remarqué le changement.

0

Avec Maven:

Dépendance sur Android (installé via Maven Android SDK Deployer):

<dependency> 
     <groupId>android</groupId> 
     <artifactId>android</artifactId> 
     <version>4.2.2_r2</version> 
     <scope>provided</scope> 
    </dependency> 

Configuration du Javadoc Maven Plugin:

<reporting> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <version>2.9.1</version> 
      <configuration> 
       <additionalDependencies> 
        <additionalDependency> 
         <groupId>android</groupId> 
         <artifactId>android</artifactId> 
         <version>4.2.2_r2</version> 
        </additionalDependency> 
       </additionalDependencies> 
      </configuration> 
      <reportSets> 
       <reportSet><!-- by default, id = "default" --> 
        <reports><!-- select non-aggregate reports --> 
         <report>javadoc</report> 
        </reports> 
       </reportSet> 
      </reportSets> 
     </plugin> 
    </plugins> 
</reporting> 
0

Ce article by ilijamt m'a aidé à générer Javadoc pour mon projet en utilisant Ant.

Fondamentalement, vous devez ajouter cette section à votre projet de build.xml

<property name="docs.dir" location="javadoc" /> 
<property name="bin.dir" location="bin" /> 
<property name="source.dir" location="src" /> 
<property name="gen.dir" location="gen" /> 

<target 
    name="javadoc" 
    description="Generate JavaDoc documentation" > 

    <xmlproperty 
    collapseAttributes="true" 
    file="AndroidManifest.xml" 
    prefix="tm" /> 

    <mkdir dir="${docs.dir}" /> 

    <javadoc 
    access="private" 
    author="true" 
    classpath="${sdk.dir}/platforms/${target}/android.jar" 
    destdir="${docs.dir}" 
    linkoffline="http://d.android.com/reference ${sdk.dir}/docs/reference" 
    linksource="true" 
    sourcepath="${source.dir};${gen.dir}" 
    use="true" 
    version="true" /> 

    <jar 
    basedir="${docs.dir}" 
    compress="${jar.compress}" 
    jarfile="${bin.dir}/${tm.manifest.package}_${tm.manifest.android:versionName}_javadoc.jar" /> 
</target> 

<target 
    name="clean" 
    depends="android_rules.clean" > 

    <delete dir="${docs.dir}" /> 
</target> 

Ce qui vous permet d'exécuter

ant javadoc 
0

Dans Eclipse, vous devez ajouter android.jar au projet classpath, soit par votre projet propriétés ou en éditant le <path_to_your_project>/.classpath manuellement.

Voir ma réponse https://stackoverflow.com/a/23925003/3499937 pour plus de détails.

0

Si vous utilisez IDEA IntelliJ aller à Tools - Generate JavaDoc... Spécifiez tous les paramètres et définir params: -bootclasspath [path]\android-sdk\platforms\android-{version}\android.jar -encoding UTF-8 -docencoding utf-8 -charset utf-8

Plus d'informations est dans ce post.

Questions connexes