Plusieurs fichiers dex – La conversion au format Dalvik a échoué – Impossible d’exécuter dex

J’ai 2 versions de l’application – Pro et Lite. Ils sont tous deux déjà sur le marché à la v1.01. J’essaie de publier la v1.1 pour les deux. Cette mise à jour inclut l’intégration de SwawrmConnect afin d’utiliser leurs classements globaux.

Je devrais commencer par dire que je sais que je ne maintiens pas mon code correctement. J’ai 2 applications complètement séparées et qui partagent probablement 90% de leur code. Je les maintiens séparément car après une semaine ou deux ou trois n’ayant pas réussi à comprendre comment faire une bibliothèque et partager du code, j’ai abandonné et je suis allé dans cette direction.

SwarmConnect est le premier fichier jar que j’ai utilisé et qui a dû créer une bibliothèque pour deux applications (voir la capture d’écran de la structure de fichier ci-dessous).

En ce moment, ma version allégée fonctionne et est prête à être publiée. J’essaie maintenant d’obtenir ma version professionnelle là où elle doit être pour la publication. Je suis à peu près certain que tous les fichiers java / xml sont à jour et prêts. Lorsque j’exécutais la version professionnelle dans l’émulateur, l’erreur ci-dessous s’affichait:

[2013-04-18 11:24:41 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/swarmconnect/loopj/android/http/AsyncHttpResponseHandler; [2013-04-18 11:24:41 - BibleTriviaPro] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/swarmconnect/loopj/android/http/AsyncHttpResponseHandler; 

Choses que j’ai essayées:

  • Nettoyer / reconstruire
  • Mettre à jour Eclipse
  • Supprimer les dossiers bin et gen
  • Redémarrer Eclipse
  • Plus quelques autres trucs

Ma structure de fichier:

entrer la description de l'image ici

Le problème est peut-être si j’essaie d’utiliser SwarmConnect en tant que bibliothèque pour 2 projets (lite et pro)?

MODIFIER:

Vous trouverez ci-dessous la structure des fichiers pour la version allégée qui fonctionne parfaitement. Comstack et fonctionne sur un émulateur.

entrer la description de l'image ici

Par coïncidence, je suis tombé sur le même problème juste avant hier. Voici ce que je vous suggère de faire.

Tout d’abord, assurez-vous de disposer d’une copie de sauvegarde de tous les fichiers jar résidant actuellement dans le dossier «Dépendances Android» / «libs».

Maintenant, laissez d’abord corriger la version Lite en suivant ces étapes.

  1. Supprimez tous les fichiers jar sauf android-support-v4.jar du dossier “Dépendances Android” sous Explorateur de projets dans Eclipse.

  2. De même, supprimez tous les fichiers Jar sauf android-support-v4.jar du dossier libs sous Explorateur de projets dans Eclipse.

  3. Maintenant, cliquez avec le bouton droit de la souris sur votre projet-> Sélectionnez Propriétés-> Sélectionnez le chemin de génération Java-> Sélectionnez Ajouter des fichiers JAR externes. Ajoutez tous les fichiers jar nécessaires (assurez-vous d’append un fichier jar particulier une seule fois).

Enfin, nettoyez le projet et construisez-le. Appliquez maintenant la même séquence d’étapes à la version pro. Ça devrait le faire.

UPDATE: – Dans le cas où vous voyez Eclipse bombarder des erreurs de compilation après avoir fait tout cela, il vous suffit de corriger ces erreurs de compilation en faisant les importations nécessaires en appuyant sur Ctrl + Shift + O.

[Je suppose qu’il n’y a pas de lien entre les versions pro et lite du projet en termes de dépendances à la source, etc. Ce que je veux dire en gros, c’est qu’elles sont totalement indépendantes.]

J’espère que cela t’aides.

Je soupçonne fortement que c’est votre problème

  1. Faites un clic droit sur votre projet
  2. Regardez sous l’option “Android”
  3. Dans le volet inférieur, regardez si “Swarm Connect” est présent
  4. Sinon, ajoutez-le (bien que je le soupçonne vraiment qu’il existe déjà)
  5. Supprimer Swarm.jar de votre répertoire libs

La raison en est: lorsque vous ajoutez un projet de bibliothèque à un projet Android dans Eclipse, il n’apparaît pas dans votre répertoire libs. En fait, j’ai essayé d’append uniquement le fichier .jar à un projet et on m’a dit que c’était la mauvaise approche (du moins jusqu’à l’API 14, je pense).

À mon avis, dans votre version “non-professionnelle”, vous ne l’avez pas liée dans les options du projet et la compilation est donc toujours correcte. Cependant, vous devez le relier comme je viens de le décrire pour éviter les problèmes lorsque la bibliothèque tente d’accéder à ses propres ressources.

La solution ci-dessus n’a pas fonctionné pour moi. Tout ce que j’avais à faire était d’append les fichiers jar dans le dossier libs en externe et de désélectionner les bibliothèques privées Android sous l’onglet commande et exportation.

  right click-- java build path-- order and export tab ->Uncheck Android private libraries and add jars in the libs folder externally. 

faites les étapes ci-dessus. Je ne sais pas pourquoi cela se passe.

J’ai essayé la réponse de @ Sriram ci-dessus. Ça n’a pas marché.

Ensuite, j’ai dû supprimer les bibliothèques de l’emplacement Project-> Properties-> Java Build Path-> Libraries et append les fichiers JAR (j’avais besoin à la fois de android-support-v4.jar et android-support-v13.jar) dans le dossier libs. de mon projet. Ensuite cela a fonctionné:

structure finale

(notez qu’il n’y a pas de dossier “Bibliothèques référencées”)

J’ai eu cette erreur parce que j’ai utilisé l’intégralité du programme d’installation du kit de développement Android (Eclipse plus SDK, daté du 6 juin 2013). La seule façon de m’en débarrasser consistait à désinstaller tout cela et à installer séparément Eclipse For Java Developers à partir d’eclipse.org et le SDK Android uniquement à partir du site Android. L’Eclipse qui accompagne le kit contient des idées amusantes sur l’endroit où inclure les bibliothèques, sans parler des pièces vestigiales du support de c ++ et de gdb.