36 votes

Android Dex : EXCEPTION DE HAUT NIVEAU INEXPECTEE : déjà ajoutée

Mon application dépend d'un projet de bibliothèque. Ce projet de bibliothèque dépend de l'Android Compatibility Package V4. J'ai PAS a exporté la dépendance du projet de bibliothèque. Dans mon propre projet, j'ai ajouté ACL V13 en tant que dépendance, mais lors de la compilation, j'obtiens l'erreur qu'il y a essentiellement une dépendance dupliquée. Je pensais que le fait de ne pas exporter la dépendance du projet de bibliothèque résoudrait ce problème, mais ce n'est pas le cas.

Comment puis-je résoudre ce problème ?

EDIT

En outre, selon Documentation sur les outils Android :

Cas particulier pour Android-support-v4.jar et Android-support-v13.jar.

Nous faisons un cas spécial pour ces deux bibliothèques parce que -v13 contient une version complète de -v4. Si les deux sont trouvées, alors seule -v13 sera utilisée.

Donc ça devrait marcher...

19voto

ol_v_er Points 8532

Si vous utilisez exactement la même lib jar dans différents projets (projet libs ou projets standards), les outils apk se débarrassent automatiquement des doublons.

Le problème commence lorsque vous avez deux librairies avec le même nom mais pas à la même révision.

Les fichiers Android-support-v4.jar et Android-support-v13.jar peuvent être de différentes révisions puisqu'ils ont toujours le même nom dans les différentes versions du paquet de support ( http://developer.Android.com/tools/extras/support-library.html#Notes )

Je vérifierais que vous utilisez exactement la même révision des librairies de support dans votre projet principal et dans votre projet de librairie.

Pour s'en assurer, copiez les deux jars des bibliothèques de support (situés dans le fichier android-sdk ) dans le dossier libs de votre projet.

{android-sdk}/extras/android/support/v4/android-support-v4.jar
AND
{android-sdk}/extras/android/support/v13/android-support-v13.jar

Cela devrait éliminer le problème.

8voto

Kushwaha Points 663

Supprimez le paquet v4 de la bibliothèque.

Nettoyer les projets.

4voto

Giorgos Kylafas Points 1077

Dans mon cas, je venais de mettre à jour l'un des JARs du dossier libs/ vers une nouvelle version.

Il a suffi de lancer Build -> Rebuild Project, c'est-à-dire de lancer une tâche "clean" avant "assembleDebug", etc. pour résoudre le problème.

3voto

Eh bien, dans mon histoire, j'ai dû supprimer les dépendances des modules qui étaient les mêmes, les ajouter en bibliothèque, puis ajouter cette bibliothèque à chaque module comme dépendance.

Donc :

  • Module a : Dépend d'Android-v4 (et l'a dans son dossier lib)
  • Module b : Dépend d'Android-v4 (et l'a dans son dossier lib)

    1. Ajouter aux bibliothèques du projet "Android-v4" (par exemple du 1er module). Supprimez-le dans le dossier lib du module b.

    2. Supprimer dans les modules a et b la dépendance d'Android-v4

    3. Ajouter à chaque module dépendance -> bibliothèque -> Android-v4 (que vous avez créé à l'étape 2)

Je ne suis pas sûr que ce soit la bonne solution, mais elle fonctionne.

1voto

alexei burmistrov Points 1097

Avez-vous essayé de changer la dépendance de la bibliothèque de la v4 à la v13 et de l'exporter ?

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