Comment attacher la source à android.jar

Je suis nouveau sur Android. Je travaille sous Windows avec l’IDE Eclipse. Mon application simple a un spinner qui remplit une liste à partir de la colonne de firebase database. Lorsque je clique sur la classe spinner, l’éditeur de fichier indique que cette source n’est pas trouvée et que android.jar n’a aucune pièce jointe.

J’ai téléchargé le code source et l’ai placé à cet endroit:

android-sdk-windows\platforms\android-8

Ensuite, j’ai attaché cette source par ces étapes:

clic droit sur le projet => build path => configure build path => libraries => pièce jointe => donne le chemin du code source téléchargé.

Mais je n’ai pas trouvé de solution pour mon débogage. Encore une fois, lorsque vous cliquez sur le spinner, il ouvre le débogage pour lequel android.jar n’a aucune pièce jointe source.

Pour joindre le code source à android.jar, vous pouvez suivre le didacticiel sur le lien ci-dessous: http://android.opensourceror.org/2010/01/18/android-source/ Assurez-vous de choisir la version de la plate-forme appropriée.

Si vous rencontrez des difficultés avec Spinner, essayez d’obtenir le code exemple et voyez comment cela fonctionne: http://developer.android.com/resources/samples/get.html

Bonne chance. 🙂

Mettre à jour

Cette réponse est assez obsolète, veuillez considérer d’autres réponses.

C’est maintenant vraiment facile!

Allez dans Window-> Android SDK Manager et installez “Sources for Android SDK”.

Maintenant, essayez de cliquer-clic sur certains identifiants Android, vous obtiendrez la page habituelle “sans source attachée”. Cliquez sur “Attacher la source” et obtenez l’option pour sélectionner un dossier externe.

Maintenant, naviguez jusqu’à /home/me/android-sdks/sources/android-16 (ou partout où votre SDK est installé; ceci est la valeur par défaut) et appuyez sur ok.

Il devrait réfléchir un instant et ensuite afficher la source! Yeay!

Sauf si vous avez besoin de sources API plus anciennes, vous êtes probablement mieux servi par la réponse de Timmmm. Si vous avez besoin de sources de plus de 14 ans, lisez la suite …

Dans Eclipse, allez simplement à

Aide -> Installer un nouveau logiciel

puis ajoutez le site de mise à jour

http://adt-addons.googlecode.com/svn/trunk/source/com.android.ide.eclipse.source.update/

et parcourez les mouvements pour l’installer.

Cela fournira heureusement des sources pour toutes les versions d’API installées et fonctionnera très bien pour moi. Un peu plus de documentation est ici

http://code.google.com/p/adt-addons/

chercher la rubrique Sources Android

Si l’ajout d’un dossier android-sdks/sources/android-17 comme source externe ne fonctionne pas (comme dans mon cas), vous pouvez essayer de créer un dossier android-sdks/platforms/android-17/sources/android-17 sources de copie et redémarrer eclipse (j’ai eclipse Juno Service Release 1). Seul ce moyen fonctionne pour moi.

Étapes pour faire cela pour Android-17:

  1. Allez dans le dossier d’installation adroid-sdk , pour moi c’est d:\ws\android-sdks\
  2. Copiez le dossier sources android-17 depuis android-sdks\sources\android-17\ vers android-sdks\platforms\android-17\sources\ (vous devez créer des sources dossiers ici manuellement) afin que le chemin final vers les sources être le: android-sdks\platforms\android-17\sources\android-17\
  3. redémarrer l’éclipse, il doit automatiquement joindre les sources pour Android-17

UPD: la même solution avec les symlinks :

Windows Vista + (merci @ saleemrashid1 ​​d’avoir mentionné mklink dans les commentaires):

 1. cd platforms\android-17 2. mklink /D "sources\android-17" "..\..\..\sources\android-17" 

Pour les systèmes d’exploitation Unix-base (commentaire @Joe):

Cela fonctionne très bien pour créer le répertoire et le lien symbolique “sources / android-XX” pour “../../../sources/android-XX”:

 mkdir platforms/android-19/sources && ln -s ../../../sources/android-19 platforms/android-19/sources/android-19. 

Ce qui a fonctionné pour moi suit la réponse trouvée dans la programmation Android de Murach. Je me suis retrouvé bloqué en train d’essayer de déboguer et d’essayer de travailler pendant environ 3 heures avant de passer à la page suivante (littéralement) où il était dit “Parfois, Eclipse affichera un message source non trouvé car …” (-headdesk-)

Ma solution était d’activer le filtrage par étape et d’append les paquets que je voulais ignorer lors du débogage. Evidemment, Eclipse parcourt parfois toutes les bibliothèques de code source, alors que tout ce que vous voulez, c’est faire défiler votre code. Vous pouvez contourner ce problème en ajoutant les packages que vous souhaitez ignorer au filtre. Selon Murach, vous devez simplement le faire par essais et erreurs, en commençant par sélectionner tous les paquets et en les ajoutant. En poursuivant le débogage, vous constaterez peut-être que vous devez append d’autres packages au filtre.

Étapes spécifiques: 1. Activez le filtrage par étapes; Cliquez sur le bouton dans la barre d’outils en haut qui ressemble à ceci: http://soffr.miximages.com/android/x3iccp.png 2. Allez dans Window -> Preferences, puis dans la boîte de dialog Preferences, sélectionnez Java -> Debug- -> Filtrage par étapes 3. Sélectionnez tous les paquets. 4. Pour append des filtres supplémentaires, cliquez sur “Ajouter un filtre”, tapez le nom du package avec un. * À la fin, puis cliquez sur OK. Murach recommande d’append ces paquets communs: –android. * –Com.android. * –Com.google. * –Dalvik. * –Libcore. * –Org.apache. * Donc pour en append un ces packages, cliquez sur “Ajouter un filtre”, tapez “android. *”, puis cliquez sur OK. J’ai fini par avoir tous les paquets suivants sur les préférences de mon filtre Step.

Android. , android.app. , com.android. , com.google. , com.ibm. , com.sun. , Dalvik. , java. , javax. , jrockit. , libcore. , org.apache. , org.omg. , Soleil. , sunw. *, ((et ce dernier est une classe, pas un paquet)) java.lang.ClassLoader

J’ai eu “Use Step Filters” coché en haut de la boîte de dialog et “Step through filters” a été sélectionné en bas. Cliquez sur “Appliquer”, puis sur “OK” pour fermer la boîte de dialog. Ça devrait marcher.

Bonne chance!

J’ai ajouté le sdk appengine et d’autres sources, et cela a détruit mon ADT 🙁

J’ai vu que pour Android-16 et Android-17, les bibliothèques de plate-forme téléchargées par SDK Manager commençaient à aller à ./sdk/sources alors qu’avant d’append SDK appenginge, SDK Manager envoyait des plates-formes à ./sdk/platforms.

Il semble que le changement soit dû au sdk appengine, mais pour l’ADT, les API de la plate-forme devraient être dirigées vers ./sdk/platforms

Le chemin d’access ./sdk/sources semble être un emplacement Java plus générique et constitue probablement le chemin correct. Ainsi, Android, comme d’habitude, est le problème. J’étais à peu près sûr à partir de ce moment-là, j’aurais besoin des deux ./sdk/sources et ./sdk/platforms, selon ce que je compilais.

J’ai donc tout déplacé de ./sdk/sources vers ./sdk/platform, supprimé ./sdk/sources puis créé un lien ‘cd sdk && ln -s platform sources’

Tout fonctionne maintenant 😉

Pour moi, la seule solution qui fonctionnait était la réponse de fsbmain . Bravo à lui. Je ne peux pas commenter sa solution à cause de mon compteur de mauvaise réputation. Mais je veux partager mes connaissances;)

Je travaille sur Windows et je ne veux pas copier l’intégralité de l’arborescence source vers un autre emplacement. Et copier à nouveau sur les mises à jour etc. J’ai donc utilisé la possibilité d’insérer un lien symbolique qui fonctionne depuis Windows Vista comme un charme (ou comme Linux). Pour Linux, vous devez regarder le commentaire de Joe sous la réponse de fsbmain.

En supposant que vous avez la plate-forme dans D: \ sdk \ plates-formes \ android-19 . Maintenant, vous devez créer un sous-répertoire sources et ensuite créer un lien relatif vers le dossier des sources réelles.

 D:\sdk\platforms\android-19>mkdir sources D:\sdk\platforms\android-19>cd sources D:\sdk\platforms\android-19\sources>mklink /D android-19 ..\..\..\sources\android-19 

Maintenant, redémarrez Eclipse … Done!