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
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.
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') }
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.
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.
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.
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 )
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' }
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.
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'
}