30 votes

La jarre de ce fichier de classe appartient au conteneur 'Android Dependencies' qui ne permet pas de modifier les pièces jointes des sources sur ses entrées.

Je suis en train de créer une application de messagerie qui donne l'erreur indiquée dans le titre de cette question. Comment puis-je résoudre ce problème ? Je donne la capture d'écran de mes codes si cela peut aider à trouver la solution.

enter image description here

4 votes

La réponse de WindRider est la réponse correcte et officielle. Vous devriez modifier votre acceptation afin que les futurs utilisateurs puissent trouver cette réponse.

0 votes

Veuillez considérer la réponse acceptée, car la réponse actuellement acceptée n'est pas une solution.

36voto

WindRider Points 1363

Il existe une solution officielle à ce problème :

Autoriser l'attachement src/doc pour les jars de tiers dans libs/

Puisque ces jars sont ajoutés dynamiquement par le biais d'un conteneur de classpath, les développeurs ne peuvent pas définir le chemin source et la javadoc via l'interface utilisateur d'Eclipse (le conteneur ne permet pas de les modifier). Pour résoudre ce problème, et pour s'assurer que les deux chemins sont récupérés non seulement par le projet actuel, mais aussi mais aussi par d'autres projets (si le projet actuel est un projet de bibliothèque), la valeur est définie par un fichier situé à côté du fichier jar. Ce fichier est nom après le fichier jar, en ajoutant .properties à la fin. Par exemple foo.jar -> foo.jar.properties Il peut actuellement contenir 2 propriétés : src : chemin relatif ou absolu vers le dossier (ou l'archive) source. doc : chemin relatif ou absolu vers la javadoc.

https://Android-review.googlesource.com/#/c/35702/

EDIT : Explication dans la vidéo de la Google I/O 2012

Exemple, pour Joda-Time 2.1 :

cd $PROJECT/libs
touch joda-time-2.1.jar.properties

Et insérez ce qui suit, en vous assurant que le chemin est correct :

src=/Users/josh.oneal/SDKs/joda-time-2.1/joda-time-2.1-sources.jar
doc=/Users/josh.oneal/SDKs/joda-time-2.1/joda-time-2.1-javadoc.jar

Vous pouvez maintenant cliquer avec le bouton droit de la souris sur votre projet dans Eclipse et l'actualiser, puis commander / Ctrl + cliquer sur une classe telle que DateTime pour voir sa source.

2 votes

Merci beaucoup, c'est absolument la bonne réponse à la question. J'ai modifié votre message pour inclure un exemple pour les futurs utilisateurs.

1 votes

Que se passe-t-il si le jar est ajouté via un autre projet Android dans l'espace de travail (paramètres > Android > ajouter un projet de bibliothèque) ?

2 votes

Merci ! NB. J'ai également dû redémarrer Eclipse pour que cela prenne effet.

10voto

Andy Dennie Points 2353

Il semble que ce soit quelque chose qu'ils ont intentionnellement cassé dans ADT r17. Voir http://code.google.com/p/Android/issues/detail?id=27490#c6 .

0 votes

Merci de votre réponse. J'ai résolu ce problème en ajoutant un autre jar à l'application, car j'avais déjà mis à jour l'ADT d'Eclipse en r17. Mais le fait est que la raison de ce problème est la r17. Merci encore

2 votes

Notez également que ce problème devrait être corrigé dans ADT r20 (dans la preview 2, pas encore publié au moment où j'écris ces lignes). Voir code.google.com/p/Android/issues/detail?id=27490#c21 .

1 votes

Veuillez consulter la réponse fournie par WindRider - elle fournit des détails sur la correction à laquelle je faisais allusion dans mon commentaire précédent.

10voto

Cristan Points 398

Lorsque vous utilisez eclipse, vous pouvez le corriger en sélectionnant votre projet de bibliothèque et en allant dans Propriétés > Commander et exporter et déplacer votre dépendance src au-dessus de la dépendance gen. Vous pouvez également modifier manuellement votre fichier .classpath pour faire la même chose. Les attachements de source devraient fonctionner après avoir nettoyé ce projet. Les crédits pour avoir trouvé la solution vont à NightCrawler

1 votes

Cela a marché pour moi ! J'ai fait un clic droit sur le projet qui est une bibliothèque de mon projet principal. Sélectionnez properties -> java build path -> order and export -> déplacer le [projectname]/src ligne jusqu'au sommet ! !

0 votes

Cela a aussi fonctionné pour moi. En fait, j'ai déplacé le fichier [nom du projet]/src vers le fichier [nom du projet]/.apt_generated ; ce dernier était choisi comme source dans le projet de l'application.

1 votes

J'ai essayé pratiquement toutes les autres réponses acceptées, sans résultat. Cela a fonctionné pour moi une fois que j'ai réalisé que cela devait être fait dans la BIBLIOTHÈQUE. J'ai continué à le faire dans le projet hôte et cela n'a rien donné.

3voto

Stefan Points 1671

Remarquez la solution de contournement dans le commentaire 8

http://code.google.com/p/Android/issues/detail?id=27490#c8 . "Bonjour, j'ai la solution au problème décrit dans un commentaire 3 :

  1. Déplacez le contenu du dossier libs vers lib car ADT 17 ajoute automatiquement toutes les jarres du répertoire libs sous les dépendances Android.
  2. Ajoutez les dépendances de votre répertoire lib comme une dépendance eclipse normale (l'ancienne méthode avant ADT 17). Lier les fichiers JAR avec leurs fichiers JAR source ou Javadoc.
  3. Dans Propriétés du projet -> Chemin de construction Java -> Ordre et exportation, vérifiez toutes les dépendances ajoutées à inclure dans les fichiers de classe du projet.
  4. Sélectionnez Android Tools > Fix Project Properties".

2voto

Britc Points 302

J'ai eu le même problème en utilisant javax.mail pour accéder à gmail. Selon ce lien (http://stackoverflow.com/questions/6546926/could-not-find-class-error-when-trying-to-upload-a-video-to-youtube-using-the-gd), il semble qu'il y ait une sorte de problème avec lui et Android.

Je l'ai résolu en utilisant ces fichiers JAR, ici : http://code.google.com/p/javamail-Android/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X