130 votes

L'ajout d'une bibliothèque/JAR pour une Éclipse du projet Android

C'est une question en deux parties sur l'ajout d'une bibliothèque tierce (JAR) pour un projet Android dans Eclipse.

La première partie de la question est, quand j'essaie d'ajouter un tiers de la fiole (bibliothèque) pour mon projet Android j'ai d'abord que le problème de

Erreur d'analyse XML: unbound préfixe

parce que je suis en train d'utiliser une classe de POT (et besoin du préfixe en quelque sorte défini). Ce qui se passe?

Deuxièmement, (après la fixation de la, la réponse est donnée ci-dessous), mon application ne fonctionne pas sur Android, et je découvre via le débogueur (LogCat) que la classe, je suis d'essayer de consommer n'existe pas.

Causés par: java.lang.ClassNotFoundException: com.github.droidfu.les widgets.WebImageView...

Pourquoi, quand je n'ai pas de compilation ou de l'éditeur de liens d'erreur dans Eclipse, a-t-elle ce problème sur l'émulateur?

Ces deux questions sont rhétoriques pour je vais répondre moi-même ci-dessous. D'autres messages dans ce forum de fluage le problème, et d'ailleurs il y a des discussions, mais je sens que je peux être plus explicite utile pour le gars à côté.

316voto

Russ Bateman Points 6868

Maintenant, pour le manque de classe de problème.

Je suis une Éclipse développeur Java EE et ont pris l'habitude depuis de nombreuses années de l'ajout de bibliothèques tierces via la "Bibliothèque Utilisateur" mécanisme dans le Build Path. Bien sûr, il y a au moins 3 façons d'ajouter une bibliothèque tierce, celui que j'utilise est la plus élégante, à mon humble avis.

Cela ne fonctionnera pas, cependant, pour Android, dont le Dalvik "JVM" ne peut pas gérer un ordinaire Java compilé à la classe, mais il doit être converti dans un format spécial. Cela ne se produit pas lorsque vous ajoutez une bibliothèque dans la façon dont je suis l'habitude de le faire.

Au lieu de cela, suivez le (largement disponibles) instructions pour l'importation de la bibliothèque tierce, puis l'ajouter à l'aide du Chemin de génération (ce qui le rend connue pour Eclipse pour la compilation). Voici, étape par étape:

  1. Télécharger la bibliothèque de votre hôte système de développement.
  2. Créer un nouveau dossier, libs, dans votre Eclipse/Android projet.
  3. Cliquez-droit sur libs et choisissez Importer -> Général -> Système De Fichiers, puis Ensuite, Naviguer dans le système de fichiers pour trouver la bibliothèque du parent répertoire (c'est à dire: où vous téléchargé).
  4. Cliquez sur OK, puis cliquez sur le nom de répertoire (pas de la case) le volet de gauche, puis vérifier la pertinentes JAR dans le volet de droite. Cette met de la bibliothèque dans votre projet (physiquement).
  5. Clic-droit sur votre projet, choisissez Build Path -> Configure Build Chemin d'accès, puis cliquez sur l'onglet Bibliothèques, Ajoutez ensuite les Pots..., accédez à votre nouveau POT dans les libs répertoire et l'ajouter. (Ce qui, incidemment, est le moment où votre nouveau POT est converti pour utiliser sur Android.)

NOTE

Étape 5 peut ne pas être nécessaire, si la lib est déjà inclus dans votre build path. Juste s'assurer que son existence avant d'y ajouter.

Ce que vous avez fait ici accomplit deux choses:

  1. Comprend un Dalvik-converti JAR dans votre projet Android.
  2. Fait Java définitions disponibles pour Eclipse afin de trouver le tiers des classes lors de l'élaboration (compilation) votre projet de code source.

20voto

Mondain Points 5200

S'assurer que votre 3ème partie pots sont dans vos projets "libs" dossier et ils seront mis dans la .apk lorsque vous créez un package de votre application. Vous pouvez voir des erreurs d'exécution sur le périphérique si quelque chose dans le pot n'est pas pris en charge, mais d'autres que j'ai eu beaucoup de succès avec cette.

5voto

koke Points 59

Constitution d'une Bibliothèque de Projet

Un projet de bibliothèque est un standard du projet Android, de sorte que vous pouvez en créer un nouveau de la même manière que vous le feriez pour un nouveau projet d'application.

Lors de la création de la bibliothèque de projet, vous pouvez sélectionner un nom d'application, package, et de définir d'autres champs, comme le montre la figure 1.

Ensuite, définissez les propriétés du projet pour indiquer que c'est un projet de bibliothèque:

Dans l'Explorateur de packages, cliquez-droit sur le projet d'une bibliothèque et sélectionnez Propriétés. Dans la fenêtre Propriétés, sélectionnez "Android" propriétés de groupe à gauche et repérez les propriétés d'une Bibliothèque à droite. Sélectionnez "Bibliothèque est" case à cocher et cliquez sur Appliquer. Cliquez sur OK pour fermer la fenêtre Propriétés. Le nouveau projet est maintenant marqué comme un projet de bibliothèque. Vous pouvez commencer à déplacer le code source et de ressources en elle, comme décrit dans les sections ci-dessous.

4voto

ajay cK Points 119

Si vous êtes à l'aide de l'outil ADT version 22, vous devez vérifier la android dépendances et android bibliothèques privées dans l'ordre et à l'Exportation, dans l'onglet projet de construction de chemin d'accès

2voto

Russ Bateman Points 6868

Tout d'abord, le problème du manque de préfixe.

Si vous consommez quelque chose dans votre fichier de mise en page qui provient d'un tiers, vous pouvez avoir besoin de consommer son préfixe ainsi, quelque chose comme "droidfu:" ce qui se produit dans plusieurs endroits dans la construction XML ci-dessous:

<com.github.droidfu.widgets.WebImageView android:id="@+id/webimage"
          android:layout_width="75dip"
          android:layout_height="75dip"
          android:background="#CCC"
          droidfu:autoLoad="true"
          droidfu:imageUrl="http://www.android.com/images/opensourceprojec.gif"
          droidfu:progressDrawable="..."
          />

Cela vient du POT, mais vous aurez aussi besoin d'ajouter le nouveau "xmlns:droidfu"

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:droidfu="http://github.com/droidfu/schema"
      ...>

ou vous obtenez le préfixe indépendant d'erreur. Pour moi, ce fut un échec pour copier et coller de l'ensemble de l'exemple proposé à partir de la troisième partie de la bibliothèque de pages.

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