web-dev-qa-db-fra.com

entrée en double: com/Android/volley/AuthFailureError.class lors de la compilation du projet dans le studio Android

J'utilise des bibliothèques externes payu money sdk et linkedin-sdk, toutes deux utilisent des bibliothèques de volley, qui lors de la compilation d'un projet donnent une entrée dupliquée de AuthFailureError.class

Erreur: L'exécution a échoué pour la tâche ': app: packageAllDebugClassesForMultiDex'.

Java.util.Zip.ZipException: entrée en double: com/Android/volley/AuthFailureError.class "

j'ai également ajouté le code suivant pour exclure le module, mais toujours la même erreur

configurations{ all*.exclude module: 'com.Android.volley' }

s'il vous plaît aider

13
Ankur Khandelwal

Je suis tombé sur cette même erreur, et après avoir lu ceci , j’ai pu la résoudre.

Essayez d’ajouter cette ligne dans votre fichier rép_application build.gradle -

Android{
configurations {
    all*.exclude group: 'com.Android.volley'
}}

J'espère que cela t'aides.

6
hsm59

J'ai eu ce problème quand j'ai essayé de générer l'APK (version) et je l'ai résolu en changeant le linkedin-sdk build.gradle :

De:

dependencies {
    compile 'com.Android.support:support-annotations:20.0.0'
    compile 'com.Android.support:support-v4:21.0.+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile files('libs/volley.jar')
    androidTestCompile('junit:junit:4.12') }

À:

dependencies {
    compile 'com.Android.support:support-annotations:20.0.0'
    compile 'com.Android.support:support-v4:21.0.+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.Android.volley:volley:1.0.0'
    androidTestCompile('junit:junit:4.12') }
4
giopromolla

Ajoutez multiDexEnabled true dans la section defaultConfig de votre fichier de classement

Ensuite, 

compilez 'com.Android.support:multidex:1.0.1' dans vos dépendances

Enfin, ajoutez ci-dessous dans votre classe d’application:

 @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }

Vérifiez également si vous utilisez volley.jar dans votre dossier libs. Si tel est le cas, supprimez ce fichier jar et compilez à nouveau. Parfois, les dépendances de jar sont en conflit avec celles compilées à l'aide d'une source distante.

3
asdec90

supprimez simplement le fichier jar en double (remarque: utilisez la nouvelle version, supprimez l'ancienne version) pour importer "com.Android.volley.AuthFailureError" dans build.gradle. Ensuite, nettoyez le projet et reconstruisez le projet, puis exécutez-le.

2
vimal raj

J'avais le même problème en construisant Jenkins, bizarrement, ça fonctionnait bien sur ma machine locale. Après avoir ajouté ci-dessous exclut, cela a fonctionné à la fois sur la machine locale et sur Jenkins.

Android{
configurations {
    all*.exclude group: 'com.Android.volley'
}}

J'ai ajouté un bloc de configurations au build.gradle de mon application dans la section Android.

Si cela compte, la version du Kit de développement logiciel (SDK) de compilation est 22 et la version de Build Tools est 25.0.0.

Cela a fonctionné comme un charme.

1
Shyam Sunder

Voici un exemple expliquant comment exclure des classes dans des dépendances lorsqu'il existe une entrée en double dans Gradle. 

 compile ('com.google.api-client:google-api-client-Android:1.17.0-rc') {
    exclude module: 'httpclient'
 }

ou essayez avec votre façon d'ajouter juste un peu plus de texte

configurations {
     all*.exclude group: 'com.Android.support', module: 'support-v4'
}

Alors maintenant ce que vous devez faire c'est

Recherchez CTRL + SHIFT + N dans Android Studio pour la classe AuthFailureError.class . Affichez le fichier jar qui le contient et supprimez-le comme ci-dessus (ceci est simplement un exemple/vous devez déterminer la classe en double et la supprimer manuellement )

1
siddhesh

Ok j'ai eu ma réponse

Sur mac au lieu du contrôle n, c’est la commande 0 et la commande dont j’avais besoin était

configurations { all * .exclude module: 'volley-release' }

0
Adam Katz

Retirez simplement votre bibliothèque de volées de votre dépendance. Essayez de nettoyer et de reconstruire le projet, cela fonctionne pour moi. Ex. payusdk implémente également la bibliothèque de volée, raison pour laquelle l'exception indique une entrée en double. J'espère que ca fonctionne. parce que j'ai aussi trouvé cette erreur et que je fais ces choses, ça marche. Merci. 

0
Akhil

Utilisez la commande ci-dessous dans Android Studio Terminal pour obtenir les données de conflit de dépendances - [Remplacer par le nom de votre application]

./gradlew -q :<app>:dependencyInsight --dependency volley --configuration compile

Si vous utilisez la dernière bibliothèque Volley d'Android [ https://github.com/google/volley/releases] , ajoutez ci-dessous deux lignes dans votre fichier build.gradle sous chacune des entrées de la bibliothèque de compilation en conflit.

Ex: 

compile('com.xyz:abc:1.1.0-RELEASE') {
        exclude module: 'library'
        exclude group: 'com.mcxiaoke.volley'
}
0
Rams_QA