Comment générer des liens vers la référence de Classes Android dans javadoc?

Lorsque je génère javadoc pour mon projet Android dans Eclipse, il y a beaucoup d'avertissements comme

cannot find symbol symbol : class TextView 

et

  • Comment capturer la signature humaine
  • SearchView sur support.v7.appcompat problème de bibliothèque: l'arrière-plan par défaut de 9 patch ne fonctionne pas correctement
  • Les problèmes ADK et Eclipse - com.android.future et USBAccessory?
  • Type d'entrée pour EditText dans l'écran de préférence?
  • Pourquoi Android Studio supprime-t-il et / ou change-t-il les contraintes de layout_margin *?
  • Exception soulevée pendant le rendu: Impossible de trouver la mise en page pour la barre d'action
  •  warning - Tag @see: reference not found: android.app.Dialog 

    J'ai aussi essayé

     -link http://developer.android.com/reference/ -link http://java.sun.com/j2se/1.4.2/docs/api/ 

    Dans les Extra javadoc options (path names with white spaces must be enclosed in quotes) dans Configure Javadoc Arguments (3ème boîte de dialogue eclipse-> projet-> Générer Javadoc).

    Mais seulement -link http://java.sun.com/j2se/1.4.2/docs/api/ fonctionne, c'est-à-dire pour le lien de la classe String http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html?is-external=true est généré. Mais pour android.app.Dialog , aucun lien n'est généré.

    modifier

    J'ai également essayé de sélectionner android.jar dans Select referenced archives and projects to which links should be generated dans Configure Javadoc arguments for standard doclet (2ème boîte de dialogue eclipse-> projet-> Générer Javadoc), mais cela crée des liens locaux vers des documents locaux Android-sdk directory, PAS les références en ligne d'Android comme il le fait pour les API Java.

  • Impossible de valider la signature du certificat?
  • L'importation Espresso-Web provoque duplicateFileException
  • Ressource Theme.AppCompat.Light non trouvée dans Android Studio
  • OnContextItemSelected n'est pas déclenché lorsqu'il est appelé depuis la fenêtre Dialog
  • Disposition coulissante comme google maps v7
  • Android: les éléments enfants partageant l'état pressé avec leur parent même lorsque duplicateParentState spécifié
  • 6 Solutions collect form web for “Comment générer des liens vers la référence de Classes Android dans javadoc?”

    Javadoc s'appuie sur un fichier appelé package-list pour déterminer quels paquets Java sont documentés sous un répertoire donné. Pour une raison quelconque, un tel fichier manque pour http://d.android.com/reference/ , donc l'approche «naïve» avec

     -link http://d.android.com/reference/ 

    Ne fonctionne pas – vous recevez un avertissement que la liste des colis n'a pas pu être récupérée et aucun lien n'est généré dans vos documents. (Remarque: les cases à cocher dans cette deuxième boîte de dialogue d'éclipse se contentent de -link paramètres de -link pour vous, de sorte que cela ne fait vraiment aucune différence)

    Cependant, Javadoc offre le paramètre -linkoffline pour pouvoir ajuster précisément cette situation: Vous souhaitez lier à d'autres documents Javadoc en ligne, mais vous ne pouvez pas y accéder au moment de générer vos propres documents. Voici comment cela fonctionne: alors que -link ne prend qu'un seul paramètre (l'URL des docs JavaDoc auxquels vous souhaitez lier), la ligne de -linkoffline prend une seconde. Celui-ci est l'emplacement du fichier de la package-list des package-list !

    Donc, pour vous connecter à la documentation de référence en ligne d'Android, vous ne devez sélectionner aucune case à cocher dans la deuxième boîte de dialogue d'éclipse, mais ajouter

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

    Dans les options Extra Javadoc dans la 3ème boîte de dialogue. De cette façon, vous utilisez la package-list des package-list de vos documents Android installés localement, mais les liens dans votre Javadoc généré indiquent toujours la version en ligne.

    J'espère que cela aide!

    Après un peu d'essai et d'erreur (et de nombreuses suggestions extraites de plusieurs recherches sur le Web), j'ai pu travailler avec un script ANT spécifique, qui peut être exécuté dans Eclipse par "Run As -> 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> 

    Même si j'ai suivi la meilleure réponse ici, j'ai trouvé que je pouvais seulement le faire fonctionner si j'avais exporté un fichier de compilation de fourmi (javadoc.xml) et ajouté manuellement le fichier android.jar au classpath. Mon javadoc.xml ressemble à:

     <?xml version="1.0" encoding="UTF-8" standalone="no"?> <project default="javadoc"> <target name="javadoc"> <javadoc access="private" additionalparam=" -linkoffline http://developer.android.com/reference file:/opt/android-sdk-linux_x86/docs/reference" author="true" classpath=".:/opt/android-sdk-linux_x86/platforms/android-8/android.jar" destdir="doc" nodeprecated="false" nodeprecatedlist="false" noindex="false" nonavbar="false" notree="false" packagenames="com.example.mypackagename" source="1.5" sourcepath="gen:src" splitindex="true" use="true" version="true"/> </target> </project> 

    Je pourrais ensuite générer le document en utilisant ant -f javadoc.xml . Je ne pouvais pas trouver un moyen de le faire correctement à partir de l'interface graphique d'Eclipse, car même si la sélection de l'archive référencée correcte ne faisait pas qu'Eclipse ajoute android.jar au classpath.

    Merci @Henning

    Voici ce dont j'avais besoin dans le fichier ant build.xml:

     <link offline="true" href="http://d.android.com/reference" packagelistLoc="${android.home}/docs/reference"/> 

    Si vous avez des problèmes avec le chemin d'accès au SDK, vous pouvez créer manuellement un fichier de package-list (ou copier celui sous $ANDROID_HOME/docs/reference/package-list ) dans votre projet.

    Pour utiliser un chemin relatif, vous ne devez pas utiliser le file:/ prefix. Si vous placez le fichier dans la liste des sub-directory/package-list l'argument serait -linkoffline http://d.android.com/reference sub-directory

    Pour ceux d'entre nous assez audacieux pour passer à l'Android Studio et Gradle en constante évolution, l'une des choses qui fonctionnent et rend les choses un peu plus faciles fait référence à un emplacement de liste de paquets localement ou sur le Web. Par exemple, le code suivant de Julian génère des fichiers javadoc:

     task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) { title = "Documentation for Android $android.defaultConfig.versionName b$android.defaultConfig.versionCode" destinationDir = new File("${project.getProjectDir()}/doc/compiled/", variant.baseName) source = variant.javaCompile.source ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar" classpath = files(variant.javaCompile.classpath.files) + files(ext.androidJar) description "Generates Javadoc for $variant.name." options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PRIVATE options.links("http://docs.oracle.com/javase/7/docs/api/"); options.links("http://developer.android.com/reference/reference/"); exclude '**/BuildConfig.java' exclude '**/R.java' } 

    Mais cela a entraîné un avertissement lors de la construction, car la liste des colis n'est plus disponible (si jamais elle l'était) au

     options.links("http://developer.android.com/reference/reference/"); 

    Au début, je pensais que peut-être que la référence / référence redondante était le problème, mais la liste des colis n'était pas disponible à la

     options.links("http://developer.android.com/reference/"); 

    Ainsi, après avoir lu la discussion sur ce fil, une ligne peut être modifiée pour se référer au répertoire de référence local dans le SDK:

     options.links("c:\\path-to-sdk-directory\\docs\\reference"); 

    Il trouve la liste des colis localement et ne présente plus le message d'avertissement.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.