web-dev-qa-db-fra.com

Android Studio - Erreur: Type de programme déjà présent

Lorsque j'essaie de compiler le code, l'erreur suivante apparaît sur Android Studio 3.0.1 

Error:Program type already present: com.squareup.picasso.Action$RequestWeakReference

Mon code de qualification:

  ...
    compile 'com.Android.support:appcompat-v7:26.1.0'
    compile 'com.Android.support:design:26.1.0'
    compile 'com.Android.support:support-v4:26.1.0'
    compile 'com.Android.support:support-vector-drawable:26.1.0'
    compile 'com.Android.support.constraint:constraint-layout:1.1.0-beta4'
    compile 'com.google.firebase:firebase-messaging:11.8.0'
    compile 'com.google.firebase:firebase-ads:11.8.0'
    compile 'com.google.gms:google-services:3.1.0'
    compile 'com.google.Android.gms:play-services:11.8.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    testCompile 'junit:junit:4.12'

}

apply plugin: 'com.google.gms.google-services'

Comment puis-je réparer mon script Gradle pour corriger l'erreur? 

19
Marcostox

Ajoutez ceci au fichier build.gradle de votre module 

  configurations.all {exclude group: 'com.Android.support', module: 'support-v13'}
12
Melad

Je viens d'avoir le même problème alors je vais partager la solution qui a fonctionné pour moi. Mon erreur était: 

Program type already present: org.json.CDL 

et il a commencé à apparaître après que j'ai ajouté des acra de compilation à mon fichier Gradle. La solution a donc été d’ajouter un acra comme ceci: 

    compile('ch.acra:acra:4.5.0') {
    exclude group: 'org.json'
}   

Donc, dans le cas de OP, la solution serait de trouver laquelle de ses dépendances compile déjà com.squareup.picasso et exclut comme dans le code ci-dessus.

5
Stormtrooper

Vérifiez la version de compilation dans les paramètres de votre application. Je l'ai changée en version compatible avec le niveau d'API avec lequel j'ai construit mon projet avec . Cela a résolu le problème pour moi.

4
ThomaciousD

J'ai fait face à un cauchemar de problèmes multiples lors de la construction de l'APK après la mise à niveau d'Android Studio vers la version 3.1.2 et targetSdkVersion jusqu'à 27. Il s'agissait de l'un d'entre eux.

implementation 'me.leolin:ShortcutBadger:1.1.21@aar' 

Cette ligne causant l'erreur de construction Program type already present: me.leolin.shortcutbadger.Badger

Pour l'instant je viens de commenter et il a compilé en douceur.

2
Atul

Ok, peut-être que ce n'est pas votre cas mais c'est le message qui sort de la compilation également dans le scénario suivant

J'ai construit une application. Ensuite, j'ai modifié le fichier de classement de l'application de manière à produire un fichier aar au lieu d'un fichier apk [i.e. apply plugin: 'com.Android.library'] pour déplacer ici certaines des méthodes qui devaient être appelées par l'application d'origine

Ensuite, dans l'application d'origine, j'ai commenté les méthodes que j'ai déplacées dans le fichier aar et j'ai ajouté au projet d'application le fichier aar produit auparavant.

À ce stade, j'ai la même erreur 

Le message Error:Program type already present m'a aidé à comprendre que je devais renommer le nom du package du projet Android Studio qui construisait la bibliothèque, car ils partageaient le même nom. Alors je l'ai renommé, j'ai reconstruit le fichier aar et j'ai ajouté à nouveau ce "nouveau" fichier au projet Android Studio créant l'apk

Une fois fait le problème a disparu

1
Antonino

Il existe une incompatibilité de version de bibliothèque. si vous utilisez une version plus récente d'Android Studio, il interceptera error.just. Résolvez la version incorrecte ou Modifiez la version de compilation et vous serez opérationnel . Voir les dépendances définies ici

1
Kiran Maniya

Cela peut arriver lorsqu'il y a une incompatibilité de version de bibliothèque.

Dans mon cas, lorsque j'ai mis à jour les dépendances des services Google à partir de:

classpath 'com.google.gms:google-services:3.0.0'

à

classpath 'com.google.gms:google-services:3.2.1'

l'erreur est partie.

1
crubio

cela se produit lorsque vous avez des dépendances en double, listez toutes vos dépendances avec ./gradlew app:dependencies

par exemple, poignard et robolectric dépendent tous deux de la goyave, mais la dernière version de dagger utilise la goyave 23+ tandis que robolectric en utilise 20+, exclure la goyave de robolectric résoudra le problème dans ce cas.

0
Ege Kuzubasioglu

C'est arrivé lorsque vous mettez à jour une version de construction de la bibliothèque et que l'ancien fichier de construction n'est pas clair. Ou d'autres bibliothèques dépendent de la bibliothèque. Dans mon cas, je mets à jour com.google.gms:google-services

La solution consiste à ouvrir votre dossier de projet et à supprimer le dossier build, puis à rouvrir et vider le cache, Fichier> Invalidate Caches/Restart

0
Md Imran Choudhury

Je suis tombé sur cette erreur dans Android Studio 3.1.2 après avoir ajouté la prise en charge de Kotlin à un projet Java, puis supprimé tous les fichiers Kotlin (en laissant toutefois la configuration de dégradé en place). La suppression de la configuration Kotlin a résolu ce problème.

0
cro

Pour moi, cette erreur est apparue lorsque mon fichier build.gradle contenait une ligne non valide.

J'ai ajouté un fichier .jar en tant que bibliothèque et la construction a échoué. J'ai vérifié le fichier build.gradle, qui contenait deux lignes:

implementation files('libs/bcprov.jar')
implementation files('bcprov.jar')

Bien sûr, j'ai seulement ajouté le fichier .jar au dossier libs, donc la deuxième ligne n'est pas valide. Après avoir supprimé la deuxième ligne, l'erreur a disparu.

J'espère que cela aidera quelqu'un.

0
G. Ihasz