web-dev-qa-db-fra.com

Dans Eclipse, impossible de référencer un projet de bibliothèque Android dans un autre Android

En rédigeant cette question, j’ai réussi à la résoudre. Répétez-la ici pour le bénéfice des autres. Voici le problème initial:

J'ai créé un projet de bibliothèque très simple que je souhaite référencer dans un autre projet. J'ai déjà fait cela auparavant sans aucun problème, donc je ne sais pas vraiment pourquoi cela ne fonctionne pas cette fois-ci. J'ai:

  1. A marqué le projet de bibliothèque via les propriétés du projet. Le fichier default.properties A cet ensemble: Android.library=true

  2. Dans mon autre projet, référence supplémentaire à mon projet de bibliothèque via les propriétés du projet. Le fichier default.properties A la référence ajoutée comme prévu, c'est-à-dire Android.library.reference.1=K:/Android_test_ws/applicationRegistrar

  3. La coche verte par rapport au projet de bibliothèque référencé commence en vert, puis se transforme en croix rouge.

Cela implique qu'il doit y avoir quelque chose d'anormal dans le projet de bibliothèque, mais je ne sais pas quoi. Mon projet de bibliothèque à cette occasion est BEAUCOUP plus simple que le précédent que j'ai créé.

103
malcooke

OK Voici la solution que j'ai trouvée lorsque je cherchais le fichier default.properies du projet de référencement (pas la bibliothèque) dans mon système de fichiers. Bien que le projet de référencement se trouve dans le même espace de travail Eclipse que le projet de bibliothèque, les fichiers réels se trouvaient ailleurs dans le système de fichiers, c'est-à-dire qu'ils ne se trouvaient pas dans le même dossier parent du projet de bibliothèque. Dès que j'ai placé le projet de référencement dans le même dossier physique que le projet de bibliothèque, tout s'est bien passé.

Je suppose que cela doit avoir quelque chose à voir avec Android en utilisant ant sous les couvertures.

Edit: le nom du projet doit correspondre au nom du dossier sur le système de fichiers. Ce que vous voyez dans Propriétés du projet-> Android-> Référence de la bibliothèque est un chemin de système de fichiers relatif.

159
malcooke

Assurez-vous que les deux projets sont présents dans le même espace de travail. Pour ce faire, lors de l'importation des projets, assurez-vous que la case "Copier le projet dans l'espace de travail" est cochée.

11
Karthik Dheeraj

le même problème se produira si votre projet de bibliothèque est dans une partition différente de votre espace de travail actuel. J'ai le même problème tout à l'heure. Mon source git est en C: et je déplace juste mon espace de travail sur D: et tout commence à s'effondrer.

10
user791129

Le moyen le plus simple d'obtenir les chemins d'accès corrects aux bibliothèques consiste à utiliser l'interface graphique d'Eclipse pour ajouter la bibliothèque, comme indiqué dans la capture d'écran suivante, et laisser Eclipse se charger de l'insertion des chemins relatifs dans project.properties. C’est une configuration commune pour que vos projets de bibliothèque soient hébergés dans des répertoires très différents de vos projets principaux qui utilisent la bibliothèque. Cette méthode fonctionnera si le "projet libary" et le projet l'utilisant se trouvent dans le même "espace de travail" Eclipse (ils ne doivent pas nécessairement figurer dans le même dossier parent): enter image description here

4
Nilesh Pawar

Ce bogue est référencé plusieurs fois ici 27199 , 5786 , 646 & 8052

Peut-être qu'en votant pour eux, cela sera réglé un jour ...

3
Laurent.B

Assurez-vous que le projet de bibliothèque est marqué "Est bibliothèque" - cliquez avec le bouton droit de la souris sur le projet de bibliothèque - propriétés - Android - cochez la case "Est bibliothèque" - dans project.properties du projet de bibliothèque vous devriez avoir une nouvelle entrée: "Android.library = true. Maintenant, ajoutez-la dans le projet souhaité comme décrit dans l'article ci-dessous. (l'article avec image intégrée - de Nilesh Pawar).

3
Alexandru Circus

lorsque le développeur fait référence à Facebook ou à tout autre projet de bibliothèque, commencez par nettoyer le projet d’Eclipse-> projet-> nettoyer le projet. qui veulent permettre l'erreur de croix rouge dans l'écran de référencement.

2
jayesh jethava

Pour moi, je viens de redémarrer Eclipse et la bibliothèque ajoutée fonctionne bien.

Je veux dire la première fois qu'il montre des marques rouges après avoir ajouté le projet de bibliothèque. Bien que le projet principal et le projet de bibliothèque Eclipse se trouvent dans le même dossier d'espace de travail, aucun fichier de ressources ne se trouve en dehors du dossier de projet.

Vous pouvez donc essayer de redémarrer votre Eclipse. Bonne codage ....

2
Md Sufi Khan

Encore une autre observation sur le même sujet.

Pour moi, les deux projets se trouvaient dans le même dossier parent et étaient tous deux situés à l'intérieur de l'espace de travail. Même alors, le problème se posait toujours.

J'ai édité le fichier "project.properties" et mis le chemin absolu (avec les barres obliques "/" pour séparateur) du projet de bibliothèque. Enregistré et fermé. Ensuite, allez dans la boîte de dialogue des propriétés du projet, supprimez la bibliothèque (qui affichait toujours l’icône croix mais avec le chemin abs) et rajoutez-la comme d’habitude. Curieusement, le problème est résolu et le projet est compilé et exécuté.

Ceci est vraiment étrange et doit être un bug avec ADT. J'utilise ADT version 20.0.2

2
CuriousChettai

Il suffit de redémarrer votre Eclipse. C'est résoudre mon problème

1
Manisha Patel

La solution pour moi était de

  1. Créer un nouvel espace de travail
  2. Importer un projet de bibliothèque dans cet espace de travail
  3. Importer le projet souhaité dans cet espace de travail
  4. Avoir le projet et la bibliothèque projeter la même cible Android version OS)
  5. Projet de bibliothèque de référence dans mon projet

résolu mon problème

1
QAMAR

j'ai eu le même problème là-bas quand j'essaie de changer mon espace de travail alors c'est ma solution:

  1. importer et copier toutes les données de projet, y compris le projet de bibliothèque, dans l'espace de travail
  2. supprimez l'ancienne référence du projet en cliquant avec le bouton droit de la souris sur le projet -> Propriétés -> Android -> Bibliothèque, puis sélectionnez une bibliothèque corrompue (pour l'appeler comment) et choisissez Supprimer.
  3. nettoyer le projet d'abord (pour actualiser les propriétés de votre projet)
  4. accédez au projet de bibliothèque Propriétés -> Android -> Bibliothèque et vérifiez si sa bibliothèque est activée, puis cliquez sur Appliquer, puis sur OK.
  5. si le projet de bibliothèque est déjà une bibliothèque cochée, décochez-le d'abord, puis nettoyez le projet de bibliothèque après cette étape 4 à nouveau.
  6. allez au projet dans lequel vous voulez que la bibliothèque se trouve puis faites un clic droit sur le projet -> Propriétés -> Android -> Bibliothèque, ajoutez puis choisissez le projet de bibliothèque (il devrait être là) et cliquez sur Appliquer puis sur OK
  7. si ne semble toujours pas nettoyer le projet une fois de plus et cela devrait faire
1
ibrahim saputra

Merci d'avoir posté la question. J'avais exactement le même problème lors de l'intégration de Facebook avec mon Android application). J'ai résolu le problème en déplaçant mon projet de développement sur le même lecteur Windows dans lequel se trouvait le projet de bibliothèque. Eclipse n'arrive pas à lire. l'emplacement du projet de bibliothèque correctement à partir du fichier default.properties s'il se trouve dans un lecteur différent.

0
Girish K Gupta

Pour votre information,

Ce qui a fonctionné pour moi a été de supprimer les projets 'de bibliothèque' (les projets réels) de mon espace de travail (sans supprimer les fichiers), puis de les réimporter à l'aide de l'assistant (importation existante Android depuis le code source).

0
JRun

Lorsque vous regardez le chemin de référence avant et après, il provient de "C:/workspace/mylib" et passe à "../../mylib" lorsqu'il est copié au bon emplacement, ce qui est très intéressant.

0
Sebastian

J'ai suivi la réponse acceptée mais je devais également m'assurer que mon fichier "project.properties" était lisible.

Si le fichier est en lecture seule (vérifié dans le contrôle de source), Eclipse ne l'éditera pas. L'ajout de la référence à la bibliothèque réussira, mais la modification ne sera pas persistée après avoir cliqué sur OK.

Si fermer la fenêtre de préférences et rouvrir à nouveau supprime la bibliothèque que vous venez d'ajouter, cela peut être votre solution.

0
repkap11

Semblable au message de Soufi Khan, j'ai également résolu ce problème avec un redémarrage. Mon cas a différé en ce que lorsque j'ai accédé pour la première fois à Propriétés-> Android et que j'ai ajouté la bibliothèque, j'ai reçu une jolie coche verte. Lorsque j'ai fermé la boîte de dialogue, Eclipse affichait toujours des erreurs de type classe-non-trouvé. Quand j'ai vérifié à nouveau les propriétés, j'ai vu le X rouge. Mais la solution de M. Kahn (supprimer la mauvaise bibliothèque, redémarrer Eclipse, ajouter à nouveau la bibliothèque) a bien fonctionné.

J'utilise la version 0702 de l'offre ADT (commence par "cluster", rime avec "canard").

0
William T. Mallard

Si votre projet de bibliothèque ne s'affiche toujours pas, essayez d'ajouter un indicateur de bibliothèque dans les propriétés de votre projet de bibliothèque.

Ajouter Android.library = true

project.properties

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-Android.txt:proguard-project.txt

# Project target.
target=Android-17
Android.library=true
0
HimalayanCoder