web-dev-qa-db-fra.com

Android Dex: EXCEPTION INATTENDUE DE HAUT NIVEAU: Déjà ajouté

Mon application dépend d'un projet de bibliothèque. Ce projet de bibliothèque dépend du package de compatibilité Android V4. J'ai PAS 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 suivante: il existe essentiellement une dépendance en double. Je pensais que 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 ça?

MODIFIER

En outre, selon la 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 car -v13 contient un version complète de -v4 à l'intérieur. Si les deux sont trouvés, alors seulement -v13 sera utilisé.

Donc ça devrait marcher ...

36
LuxuryMode

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

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

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

Je vérifierais que vous utilisez exactement la même révision des bibliothèques de support dans votre projet principal et dans votre projet lib.

Pour vous en assurer, copiez les deux fichiers JAR des bibliothèques de support (situés dans le dossier 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

Il faut se débarrasser du problème.

19
ol_v_er

Supprimez le package v4 de la bibliothèque.

Nettoyer les projets.

8
Aditya Kushwaha

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

Tout ce qu’il fallait pour résoudre ce problème était d’exécuter Build -> Rebuild Project, c’est-à-dire d’émettre une tâche «propre» avant le processus «assembleDebug», etc.

4
Giorgos Kylafas

Eh bien, dans mon histoire, je devais supprimer les dépendances de module identiques, l'ajouter à la bibliothèque, puis ajouter cette bibliothèque à chaque module en tant que dépendance.

Alors:

  • 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. Ajoutez aux bibliothèques du projet "Android-v4" (par exemple à partir du 1er module). Supprimez-le dans le dossier module b lib.

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

    3. Ajouter à chaque dépendance de module -> bibliothèque -> Android-v4 (que vous avez créé en 2 étapes)

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

3
user1834249

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

1

Parfois, le simple fait de supprimer la bibliothèque de support v4 ne fonctionne pas, vous devez également reconstruire le projet.

0
Ivan V