Question

Ceci est une question en deux parties sur l'ajout d'une bibliothèque tiers (JAR) à un projet Android dans Eclipse.

La première partie de la question est, lorsque je tente d'ajouter un fichier JAR tiers (bibliothèque) à mon projet Android, j'obtiens d'abord le problème de

  

XML d'analyse syntaxique d'erreur: préfixe non liée

parce que je suis en train d'utiliser une classe de ce JAR (et besoin du préfixe défini en quelque sorte). Que se passe-t-il?

En second lieu, (après la fixation que - 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 tente de consommer n'existe pas <. / p>

  

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

Pourquoi, quand je reçois pas d'erreur de compilation ou éditeur de liens dans Eclipse, at-il ce problème sur l'émulateur?

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

Était-ce utile?

La solution

Maintenant, pour le problème de la classe manquante.

Je suis un développeur Java Eclipse EE et ont l'habitude depuis de nombreuses années d'ajout de bibliothèques tierces via le mécanisme « User Library » dans Build Path. Bien sûr, il y a au moins 3 façons d'ajouter une bibliothèque tierce, celui que je utilise est le plus élégant, à mon humble avis.

Cela ne fonctionnera pas, cependant, pour Android, dont la « JVM » Dalvik ne peut pas gérer une classe Java compilé ordinaire, mais doit l'avoir converti en 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 les instructions (largement disponibles) pour importer la bibliothèque tiers, puis en ajoutant à l'aide Build Path (ce qui le rend connu Eclipse à des fins de compilation). Voici l'étape par étape:

  1. Téléchargez la bibliothèque à votre hôte système de développement.
  2. Créer un nouveau dossier, libs , en votre projet Eclipse / Android.
  3. clic droit libs et choisissez Import -> Général -> Système de fichiers, puis ensuite Parcourir dans le système de fichiers pour trouver les parents de la bibliothèque répertoire (i.e. .: où vous téléchargé sur).
  4. Cliquez sur OK, puis cliquez sur le nom du répertoire (pas la case à cocher) dans le volet de gauche, puis vérifier le JAR pertinente dans le panneau de droite. Cette met la bibliothèque dans votre projet (Physiquement).
  5. Faites un clic droit sur votre projet, choisissez Build Path -> Configurer construire Chemin d'accès, puis cliquez sur l'onglet Bibliothèques, puis Ajouter des fichiers JAR ..., accédez à votre nouveau JAR dans le libs et ajoutez-le. (Ceci, soit dit en passant, est le moment où votre nouveau JAR est converti pour une utilisation sur Android.)

NOTE

Étape 5 peut ne pas être nécessaire, si la lib est déjà inclus dans votre chemin de construction. Il suffit de faire en sorte que son existence avant de l'ajouter.

Ce que vous avez fait ici accomplit deux choses:

  1. Comprend un JAR Dalvik converti dans votre projet Android.
  2. Permet définitions Java disponibles Eclipse afin de trouver la les classes tiers lors de l'élaboration (qui est, la compilation) Le code source de votre projet.

Autres conseils

Assurez-vous que vos bocaux 3ème partie sont dans vos projets dossier « libs » et ils seront mis dans le .apk lorsque vous emballez votre application. Vous pouvez voir des erreurs d'exécution sur l'appareil si quelque chose dans le pot est pas pris en charge, mais à part que j'ai eu un grand succès avec cela.

Mise en place d'un projet de bibliothèque

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

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

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

Dans l'explorateur de paquet, cliquez droit sur le projet de bibliothèque et sélectionnez Propriétés. Dans la fenêtre Propriétés, sélectionnez les propriétés « Android » groupe à gauche et localiser les propriétés de bibliothèque à droite. Cochez la case « est bibliothèque » 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 les ressources en elle, comme décrit dans les sections ci-dessous.

Si vous utilisez la version ADT 22, vous devez vérifier les dépendances et les bibliothèques privées android android dans l'onglet de commande et d'exportation dans le chemin de génération de projet

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

Si vous consommez quelque chose dans votre fichier de mise en page qui vient d'un tiers, vous devrez peut consommer son préfixe ainsi, quelque chose comme « droidfu: » 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="..."
          />

Il sort du JAR, mais vous aurez également besoin d'ajouter les nouveaux « xmlns: droidfu »

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

ou si vous obtenez l'erreur préfixe non lié. Pour moi, ce fut un échec de copier et coller tous l'exemple fourni à partir des pages de la bibliothèque tiers.

  

XML d'analyse syntaxique d'erreur: préfixe non liée

     

Ressource '/ playteddy / res' n'existe pas.

Je suis au-dessus de deux erreurs et finalement je l'ai résolu.

Faites un clic droit de votre projet -> propriétés -> Chemin de compilation Java -> googleadmobadsdk (sélectionner et mettre en haut), vous exécutez et le problème est résolu. Il est résolu mon erreur d'exécution.

Mettre la source dans un dossier en dehors de l'espace de travail yourt. Faites un clic droit dans le projet-explorateur, et sélectionnez « Importer ... »

Importer le projet dans votre espace de travail en tant que projet Android. Essayez de le construire, et assurez-vous qu'il est marqué comme un projet de bibliothèque. Aussi assurez-vous qu'il est compilé avec le support API Google, sinon vous obtiendrez des erreurs de compilation.

Puis, en un clic droit sur votre projet principal dans l'explorateur de projet. Sélectionnez Propriétés, puis sélectionnez Android sur la gauche. Dans la section bibliothèque ci-dessous, cliquez sur "Ajouter" ..

La bibliothèque MapView-ballons doit maintenant être disponible pour ajouter à votre projet ..

Aller au chemin de construction dans Eclipse, puis cliquez sur l'ordre et l'exportation, puis vérifiez la bibliothèque / pot, puis cliquez sur le bouton jusqu'à la déplacer vers le haut de la liste pour le compiler en premier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top