Comment attacher javadoc ou des sources aux fichiers JAR dans le dossier libs?

254

Nouvelle version du plugin ADT r17 pour Eclipse, fonctionnalité ajoutée pour configurer automatiquement les dépendances JAR. Tous les fichiers .jar du dossier / libs sont maintenant ajoutés à la configuration de génération. Malheureusement, le conteneur de chemin de classe des dépendances Android n'est pas modifiable.

Chemin de classe des dépendances Android non modifiables

Comment puis-je attacher javadoc et des sources au .jar inséré automatiquement (à partir du dossier / libs)?

Sergii Pechenizkyi
la source
Je ne pense pas qu'on ait répondu à votre question. La réponse acceptée de Mark donne exactement ce que vous avez demandé de ne PAS être la solution. Comment pouvons-nous attacher javadoc et les sources via les librairies automatiques (pas via les pots manuels)?
pjv
2
Il y a un problème pour ce bogue code.google.com/p/android/issues/detail?id=27490#c21 . Le commentaire 21 indique que l'attachement sources / javadoc sera possible dans ADT r20 avec un fichier java .properties standard (foo.jar -> foo.jar.properties) qui vous permet de modifier le chemin relatif ou absolu du dossier source (ou archive) et / ou chemin relatif ou absolu vers le javadoc.
Sergii Pechenizkyi

Réponses:

401

La meilleure façon de répondre à votre question est de résumer les réponses de Xavier , plastiv , VinceFR et Christopher .

Guide étape par étape

Afin de lier les sources et javadoc à une bibliothèque .jar qui est automatiquement liée par Eclipse, vous devez procéder comme suit:

  1. Placez le fichier .jar de la bibliothèque dans le dossier libs et les fichiers .jar et doc .jar source associés dans des sous-dossiers distincts tels que libs / src et libs / docs . Vous pouvez utiliser un nom autre que src et docs si vous le souhaitez, mais il est important que les fichiers .jar ne soient pas directement dans le dossier libs .
  2. Créez un .propertiesfichier dans le dossier libs avec le nom exact de la bibliothèque réelle .jar (voir l'exemple). Assurez-vous de conserver la partie .jar .
  3. Spécifiez les chemins d'accès relatifs aux sources et javadoc .jar dans le .propertiesfichier.
  4. Fermez et rouvrez le projet Eclipse! Vous pouvez également actualiser le projet en appuyant sur F5.
  5. Sélectionnez un objet de la bibliothèque liée dans le code source.
  6. Ouvrez la vue Javadoc dans Eclipse pour vérifier la documentation (voir capture d'écran).
  7. Ouvrez la déclaration de code source (raccourci par défaut:) F3de l'objet sélectionné.


Exemple

L'exemple utilise la bibliothèque Gson .

Structure de répertoire du dossier libs:

libs
├── docs
   └── gson-2.2.2-javadoc.jar
├── gson-2.2.2.jar
├── gson-2.2.2.jar.properties
└── src
    └── gson-2.2.2-sources.jar

Contenu de gson-2.2.2.jar.properties

src=src/gson-2.2.2-sources.jar
doc=docs/gson-2.2.2-javadoc.jar


Information additionnelle

Vous pouvez bien sûr déplacer le javadoc et les sources .jar dans d'autres dossiers et spécifier des chemins relatifs. C'est à toi de voir. Placer les fichiers source et javadoc directement dans le dossier lib est possible mais non recommandé , car cela entraîne la documentation et le code source à inclure dans votre application .


Capture d'écran du panneau Eclipse JavaDoc:

Vue JavaDoc dans Eclipse

Capture d'écran d'un projet Eclipse utilisant Gson avec Android 4.2.2 .:

Capture d'écran du projet de test Eclipse


Référencement de javadocs décompressés

Dans le cas où vous souhaitez référencer des javadocs qui ne sont pas fournis sous forme de package .jarmais simplement sous forme de fichiers et de dossiers comme demandé par le développeur Android dans les commentaires, procédez comme suit:

  1. Placer la bibliothèque .jardans le libs/dossier
  2. Créez un yourlibraryname.jar.propertiesfichier ( n'oubliez pas le.jar ) avec le contenu suivant:

     doc=docs
  3. Ajoutez les dossiers javadocs au libs/dossier.

Vous devriez créer la structure de dossiers suivante:

├── docs
   ├── allclasses-frame.html
   ├── allclasses-noframe.html
   ├── com
      └── google
          └── ads
              ├── Ad.html
                 ....
              └── package-tree.html
      ...
   └── stylesheet.css
├── GoogleAdMobAdsSdk-6.4.1.jar
└── GoogleAdMobAdsSdk-6.4.1.jar.properties

N'oubliez pas de fermer et de rouvrir le projet Eclipse comme mentionné ci-dessus! Voici une capture d'écran d'un exemple de projet qui fait référence à la bibliothèque Android GoogleAdMobAds .

Bibliothèque Google AdMobAds Projet Eclipse pour Android

JJD
la source
7
Ahhh, c'était la fermeture et la réouverture du projet Eclipse qui m'était nécessaire. (J'avais rafraîchi et nettoyé plusieurs fois sans chance avant cela.)
Steve Haley
4
Merci @JJD qui a très bien fonctionné. J'ai juste dû redémarrer Eclipse avant qu'il ne commence à fonctionner.
javajavajavajavajava
26
Note: Vous vraiment devriez mettre les jars de Javadoc et source dans un sous - répertoire, par exemple « ./libs/docs », sinon ces fichiers JAR seront regroupés dans votre APK! De plus, vous ne pourrez pas inclure Javadoc pour plusieurs bibliothèques, car la construction de l'APK échouera lorsqu'il trouvera des fichiers HTML en double.
Christopher Orr
5
Est-il possible de faire référence à un javadoc distant à partir du fichier .properties? Comme ça: doc = community.versant.com/documentation/reference/db4o-8.0/java/api
Matthias
9
Apparemment, cela ne fonctionne pas si vous allez uniquement lier le Javadoc et non le code source, j'ai dû extraire le pot Javadoc avec 7zip dans un dossier dans Mes documents, puis faire pointer le fichier de propriétés vers le dossier avec l'index Javadoc .html directement comme so doc = C: \\ Users \\ johny \\ workspacenewfb \\ robotium-solo-4.0-javadoc
mbwasi
25

Sur les fenêtres, vous devez échapper à la barre oblique inverse pour les références aux chemins doc et src dans le fichier de propriétés. Exemple, pour android-support-v4.jar, le contenu du fichier de propriétés est quelque chose comme:

doc=C:\\Program Files (x86)\\Android\\android-sdk\\extras\\android\\support\\v4\\docs
src=C:\\Program Files (x86)\\Android\\android-sdk\\extras\\android\\support\\v4\\src
farid_z
la source
1
wow votre réponse a résolu mon problème, j'en ai mis un \ mais nous devons mettre \\ .thanks so muchh
Arash
17

Une réponse vient de http://code.google.com/p/android/issues/detail?id=27490#c21

Dans votre dossier libs, vous devez avoir:

doc(folder)
    foo_doc(folder)
        index.html
        ...
        ...
foo.jar
foo.jar.properties

Et dans votre foo.jar.properties, mettez simplementdoc=./doc/foo_doc

Vous devrez peut-être rafraîchir votre projet, le nettoyer, le fermer et le rouvrir.

Ça marche pour moi!

VinceFR
la source
Si vous avez des documents en fichier zip, c'est la voie à suivre, merci beaucoup !! coup de pouce
Akhil Jain
10

J'ai essayé tout ce qui précède et aucun d'entre eux n'a fonctionné pour moi. J'ai trouvé une méthode qui fonctionnera toujours. Fondamentalement, le coupable est la façon dont l'ADT traite le dossier "libs", donc j'ai arrêté d'utiliser le dossier "libs". Au lieu de cela, j'ai créé un dossier "bibliothèques" et l'ai utilisé.

Vous pouvez faire ce qui suit et cela fonctionnera toujours - même si l'ADT devrait changer la façon dont il change la façon dont il traite le dossier "libs" à l'avenir:

  1. Créez un dossier "bibliothèques".
  2. Créez un sous-dossier en dessous pour chaque bibliothèque.
  3. Placez tous les fichiers de chaque bibliothèque dans le dossier approprié (fichier java jar, fichier source jar, fichier javadoc jar, etc.).
  4. Ajoutez le fichier java jar pour chaque projet dans l'onglet "Bibliothèques" du chemin de génération Java en cliquant sur le Add Jars... bouton pour ajouter le jar du sous-dossier bibliothèque dans le dossier "bibliothèques".
  5. Attachez les sources / javadocs à chaque projet en ouvrant le projet dans l'onglet "Bibliothèques", en sélectionnant l'élément souhaité et en cliquant sur le Edit...bouton pour ajouter la source / javadocs du sous-dossier bibliothèque dans le dossier "bibliothèques".
  6. Cochez la case de chaque projet dans l'onglet "Commander et exporter" pour le chemin de génération Java.
  7. Après avoir vérifié que toutes les bibliothèques ont été déplacées, supprimez le dossier "libs".

En suivant la procédure ci-dessus, votre projet aura des dossiers qui ressemblent à ceci:

entrez la description de l'image ici

Votre chemin de génération Java ressemblera à ceci:

entrez la description de l'image ici

Dans Order and Export, les bibliothèques sont cochées:

entrez la description de l'image ici

Danny Remington - OMS
la source
5

Pour l'instant, déplacez la bibliothèque vers laquelle vous souhaitez utiliser Javadoc lib. Ajoutez-les à la bibliothèque Build Pathet ajoutez le Javadoc.

Vérifiez ce commentaire dans les problèmes Android.

Carlos Sobrinho
la source
N'oubliez pas (comme je l'ai fait) de vérifier la commande et de paramétrer la bibliothèque à exporter dans le Build Path.
Carlos Sobrinho
4

Sur ADT 22, je ne pouvais pas accéder à Javadoc pour commons-io-2.4.jar et android-support-v4.jar

Voici comment je l'ai corrigé:

  1. Condition: les deux bibliothèques sont répertoriées sous "Bibliothèques référencées".

  2. Faites un clic droit sur commons-io-2.4.jar et sélectionnez Propriétés. Cette fenêtre apparaît:

entrez la description de l'image ici

commons-io-2.4.jar est fourni avec commons-io-2.4-javadoc.jar, j'ai donc spécifié le Javadoc dans l'archive Chemin de fichier externe.

J'ai fait la même chose pour la bibliothèque de support: faites un clic droit sur android-support-v4.jar et sélectionnez Propriétés. Cet écran apparaît:

entrez la description de l'image ici

Cette fois, j'ai spécifié le chemin d'accès au répertoire source.

Javide
la source
C'est de loin la méthode la plus simple et la plus directe pour attacher un javadoc et / ou src à une bibliothèque. Merci! Comme note supplémentaire, ni le javadoc ni le src ne doivent être dans la bibliothèque référencée.
argent
3

La référence de la bibliothèque à commons-io-2.0.1.jar a été rompue lors de la mise à niveau vers SDK Tools et ADT révision 17.

Pour résoudre le problème, j'ai utilisé Projet -> Propriétés -> Chemin de génération Java et j'ai sélectionné l'onglet Bibliothèques. J'ai supprimé toute référence à commons-io-2.0.1.jar, puis j'ai utilisé Ajouter un pot pour ajouter de nouveau commons-io-2.0.1.jar au projet. Ensuite, je clique sur la flèche '>' à côté du nom de la bibliothèque pour développer la référence de la bibliothèque et j'ai utilisé les boutons d'édition pour définir la pièce jointe source et l'emplacement Javadoc.

Désolé, je ne peux pas poster une image car je n'ai pas assez de représentants (s'il vous plaît ...).

Mark Gittoes
la source
Ça n'a pas marché pour moi. Où conservez-vous le fichier jar dans votre projet? J'ai le mien dans le dossier libs.
Daniel Ryan
Enfin, quelqu'un a donné une instruction qui a vraiment fonctionné! Merci beaucoup. Aucune des méthodes susmentionnées, y compris le fichier ".properties", ne m'a été utile, mais l'ajout de la bibliothèque en tant que JAR externe dans l'écran de dialogue a fait le travail.
AlxDroidDev
1

Semble être une cible mouvante mais, après avoir collecté des morceaux de plusieurs endroits (y compris des réponses à cette même question qui ont aidé mais n'ont pas réussi à décrire tous les détails nécessaires, ou peut-être que le système a légèrement changé entre-temps), cela semble être la solution, au moins pour l'instant (28 août 2013).

  • Ouvrez un dossier pour vos javadocs quelque part hors de votre projet.
  • Mettez vos javadocs là décompressés, chacun dans son propre dossier.
  • Dans votre libdossier, ajoutez un xxx.jar.propertiesfichier pour chaque bibliothèque à laquelle vous souhaitez associer un javadoc.
  • Dans ce fichier de propriétés, reportez-vous au dossier dans lequel vous avez décompressé le javadoc approprié (sous Windows, échappez aux barres obliques inverses):

doc=d:\\Android\\javadoc\\libGoogleAnalyticsServices

  • Fermez et rouvrez votre projet dans Eclipse (l'actualisation ne suffit pas). Vous devriez maintenant voir les info-bulles lorsque vous survolez les classes appropriées.

Ne pas observer l'une de ces étapes (ne pas décompresser le javadoc, référencer un fichier au lieu d'un dossier, etc.) semble le casser.

Gábor
la source
1

Je sais que cette question est assez ancienne, mais lorsque j'étais confronté au même problème hier et que la solution publiée ci-dessus était beaucoup trop ennuyeuse pour moi, j'ai découvert que l'on pouvait facilement ajouter une définition de chemin source au fichier .classpath du projet. Eclipse l'adaptera ensuite et vous pourrez parcourir la source.

entrée classpath avant:

<classpathentry kind="lib" path="[PATH_TO_MY_JAR]"/>

Après avoir ajouté le chemin d'accès à la source

<classpathentry kind="lib" path="[PATH_TO_MY_JAR]" sourcepath="[PATH_TO_MY_SOURCE_JAR]"/>

J'espère que cela t'aides

krinklesaurus
la source
0

il suffit de mettre à jour le plugin ADT. Cela a fonctionné pour moi !!

  1. Démarrez Eclipse, puis sélectionnez Aide> Installer un nouveau logiciel.
  2. Cliquez sur Ajouter, dans le coin supérieur droit.
  3. Dans la boîte de dialogue Ajouter un référentiel qui apparaît, entrez "Plugin ADT" pour le nom et l'URL suivante pour l'emplacement: https://dl-ssl.google.com/android/eclipse/ Remarque: Le site de mise à jour des outils de développement Android nécessite un Connexion sécurisée. Assurez-vous que l'URL du site de mise à jour que vous entrez commence par HTTPS.
  4. Cliquez sur OK. Dans la boîte de dialogue Logiciels disponibles, cochez la case en regard de Developer Tools et cliquez sur Next.
  5. Dans la fenêtre suivante, vous verrez une liste des outils à télécharger. Cliquez sur Suivant.
  6. Lisez et acceptez les accords de licence, puis cliquez sur Terminer.
  7. Si vous recevez un avertissement de sécurité indiquant que l'authenticité ou la validité du logiciel ne peut pas être établie, cliquez sur OK.
  8. Une fois l'installation terminée, redémarrez Eclipse

J'espère que cela pourra aider!

akshay
la source
0

Pour un fichier JAR donné, si vous souhaitez voir l'aide Javadoc sur l'info-bulle lors du codage, procédez comme suit: Cliquez avec le bouton droit sur votre projet> Propriétés> Chemin de génération Java> onglet Bibliothèques. Cliquez sur la flèche à côté de votre pot pour développer.

La pièce jointe source doit pointer vers l'emplacement du pot réel (probablement dans votre dossier java).

Emplacement Javadoc : Vous avez deux choix ici: URL et archive. Si vos javadocs pour ce bocal se présentent sous la forme d'un dossier contenant un index.html fichier au premier niveau, choisissez «URL Javadoc» et pointez sur ce dossier. Si vos javadocs sont dans un bocal, choisissez «Javadoc dans l'archive» et pointez sur le bocal. N'oubliez pas de redémarrer votre espace de travail / fermer et rouvrir votre projet pour mettre à jour l'info-bulle avec les informations Javadoc.

J'espère que cela aide à donner une réponse simple à ce que je pense être une tâche très simple.

Casey Murray
la source
0

Ma solution:

Téléchargez un plugin Eclipse appelé: "Java Source Attacher Feature".

Plus tard, sélectionnez un bocal et attachez le code source à l'aide de ce plugin. Cliquez dans le fichier jar pour le sélectionner, bouton droit de la souris, puis sélectionnez "attacher la source java".

Lorsque vous avez le code source, vous avez automatiquement le javadoc.

Vous pouvez maintenant utiliser F2 sur les classes pour afficher le javadoc associé.

Prendre plaisir

Antonio Martin
la source