web-dev-qa-db-fra.com

Impossible d'exécuter dex: plusieurs fichiers dex définissent Lbolts/AggregateException.

Je sais que plusieurs problèmes de dex ont déjà été signalés auparavant, mais aucune des solutions ne semble fonctionner dans mon cas.

Console:

    Unable to execute dex: Multiple dex files define Lbolts/AggregateException;
    Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lbolts/AggregateException;

L'une des solutions les plus courantes consiste à désélectionner le conteneur «Bibliothèques privées Android» dans buildpath. Je ne peux pas faire cela parce que j'ai besoin de plus de bibliothèques dans ce conteneur.

Une autre solution consiste à désélectionner toute bibliothèque dupliquée explicitement ajoutée au format .jar. Je n'ai pas de telles bibliothèques.

La bibliothèque en double dans mon cas est: Android-support-v7-appcompat.jar Je l'ai (directement référencée à partir du dossier sdk) dans ces deux conteneurs:

1.) Bibliothèques privées Android

2.) Dépendances Android

Le problème est que je ne peux tout simplement pas désélectionner complètement l'un de ces deux conteneurs, car ils contiennent tous les deux les autres bibliothèques nécessaires. Mais je ne parviens pas non plus à supprimer uniquement ce fichier .jar en double des conteneurs.

EDIT: N.B. Lorsque j'ajoute le projet de bibliothèque Android-support-v7-appcompat à mon projet, il entre dans les deux conteneurs. Il doit y avoir un moyen pour que cela entre dans un seul.

Quelqu'un peut-il m'aider comment je peux le faire?

screenshot

screenshot2 (unable to delete)

18
Abdul Wasae

RÉSOLU QUELQUE FAIT

La bibliothèque bolts-Android était le vrai problème ici. Il y avait deux versions différentes provoquant un conflit. La bibliothèque FacebookSDK apporte bolts-Android-1.1.2 et Android-support-v7-appcompat apporte bolts-Android-1.1.4.

J'ai désélectionné le conteneur Bibliothèques privées Android dans le projet FacebookSDKlibrary, qui contenait bolts-Android-1.1.2. En conséquence, mon projet ne dispose désormais que d’une seule version, bolts-Android-1.1.4, qui règle le conflit. Cela fonctionne bien maintenant.

En outre, les entrées Android-support-v7-appcompat en double n'étaient pas un problème.

22
Abdul Wasae

je l'ai rencontré récemment sur mon projet natif de réaction, vous pouvez accéder à votre dossier Android de votre projet. et dans le terminal, tapez cette commande "./gradlew app: dependencies" pour voir l’arborescence des dépendances. J'ai trouvé deux paquets pour les boulons Android sous Facebook SDK. si vous excluez ce paquet de facebook sdk les choses fonctionneront à nouveau correctement

compile ('com.facebook.react:react-native:+') {
   exclude group: 'com.parse.bolts', module: 'bolts-tasks'
}
7
Hassan Gilak

Cela peut arriver lors de l'ajout de Facebook SDK à Android, vous pouvez le résoudre avec:

compile ("com.facebook.Android:facebook-Android-sdk:4.1.0") {
    exclude group: 'com.parse.bolts', module: 'bolts-Android'
}
3
maraujop

comme la version de réaction a été mise à jour à la version 0.31.0, lorsque vous souhaitez intégrer com.facebook.fresco:animated-gif:0.10.0 qui a com.parse.bolts, vous pouvez procéder comme suit:

 compile ('com.facebook.react:react-native:+') {
    exclude group: 'com.parse.bolts', module: 'bolts-tasks'
}
compile ('com.facebook.fresco:animated-gif:0.10.0'){
    exclude group: 'com.parse.bolts', module: 'bolts-tasks'
}
0
fantianwen