Erreur: type de programme déjà présent: android.support.design.widget.CoordinatorLayout $ Behavior

129

J'obtiens l'erreur suivante lors de la construction du projet. n'ont pas utilisé CoordinatorLayout dans ce projet. vient d'être ajouté en tant que dépendance dans build.gradle:

J'utilise Android Studio 3.2 Canary 4.

LogCat

AGPBI: {"kind": "error", "text": "Type de programme déjà présent: android.support.design.widget.CoordinatorLayout $ Behavior", "sources": [{}], "tool": "D8" }: app: transformDexArchiveWithExternalLibsDexMergerForDebug FAILED FAILURE: La construction a échoué avec une exception. * Qu'est-ce qui ne va pas: l'exécution de la tâche ': app: transformDexArchiveWithExternalLibsDexMergerForDebug' a échoué.

com.android.builder.dexing.DexArchiveMergerException: Erreur lors de la fusion des archives dex: /windows/Other/app/build/intermediates/transforms/dexBuilder/debug/0.jar, / windows / Other / app / build / intermediates / transforme / dexBuilder / debug / 1.jar, /windows/Other/app/build/intermediates/transforms/dexBuilder/debug/4.jar,. . ...................

/windows/Other/app/build/intermediates/transforms/dexBuilder/debug/294.jar

Type de programme déjà présent: android.support.design.widget.CoordinatorLayout $ Behavior

build.gradle

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
    compileSdkVersion 27
    buildToolsVersion "27.0.3"
    defaultConfig {
        applicationId "com.dagkot"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            buildConfigField "String", "BASE_URL", "\"http://api.openweathermap.org/data/2.5/\""
            buildConfigField "String", "API_KEY", "\"435e9075f348868c2714fe7c6895efa5\""
        }
        debug {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        buildConfigField "String", "BASE_URL", "\"http://api.openweathermap.org/data/2.5/\""
        buildConfigField "String", "API_KEY", "\"xxxx\""
    }
}
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.1', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"


    // Dagger dependencies
    compileOnly 'org.glassfish:javax.annotation:10.0-b28'
    implementation "com.google.dagger:dagger:$rootProject.daggerVersion"
    implementation "com.google.dagger:dagger-android:$rootProject.daggerVersion"
    implementation "com.google.dagger:dagger-android-support:$rootProject.daggerVersion"
    kapt "com.google.dagger:dagger-android-processor:$rootProject.daggerVersion"
    kapt "com.google.dagger:dagger-compiler:$rootProject.daggerVersion"

    //Butterknife dependencies
    implementation 'com.jakewharton:butterknife:8.8.1'
    kapt 'com.jakewharton:butterknife-compiler:8.8.1'

    // Architecture Components Dependencies
    kapt "android.arch.lifecycle:compiler:$rootProject.lifeCycle"
    implementation "android.arch.lifecycle:extensions:$rootProject.lifeCycle"
    implementation "android.arch.lifecycle:reactivestreams:$rootProject.lifeCycle"
    implementation "com.android.support:cardview-v7:$rootProject.supportLibraryVersion"

    // Retrofit/RxJava Dependencies
    implementation "com.squareup.retrofit2:retrofit:$rootProject.retrofitVersion"
    implementation "com.squareup.retrofit2:adapter-rxjava2:$rootProject.retrofitVersion"
    implementation "com.squareup.retrofit2:converter-gson:$rootProject.retrofitVersion"
    implementation "io.reactivex.rxjava2:rxandroid:$rootProject.rxAndroidVersion"
    implementation 'com.squareup.okhttp3:logging-interceptor:3.6.0'
    implementation 'com.jakewharton.rxbinding2:rxbinding-kotlin:2.1.1'

    // GSON
    implementation "com.google.code.gson:gson:$rootProject.gsonVersion"

    // Rx Location Manager
    implementation 'io.nlopez.smartlocation:library:3.3.3'
    implementation 'io.nlopez.smartlocation:rx:3.3.1'

    //Anko Dependencies
    implementation "org.jetbrains.anko:anko-commons:$rootProject.anko_version"
    implementation "org.jetbrains.anko:anko-design:$rootProject.anko_version"
    implementation 'com.android.support:design:27.0.2'

    implementation("com.github.hotchemi:permissionsdispatcher:3.1.0") {
        // if you don't use android.app.Fragment you can exclude support for them
        exclude module: "support-v13"
    }
    kapt "com.github.hotchemi:permissionsdispatcher-processor:3.1.0"
}
Ankit Mehta
la source
5
il suffit d'ajouter l' implémentation 'com.android.support:design:27.1.1' dans le fichier gradle
Tushar Lathiya
1
@TusharLathiya J'ai un problème similaire mais le déclassement a fonctionné pour moi. J'utilise la version 27.0.0
Eswar
Si vous avez déjà installé firebase-ui dans une dépendance d'application, cela peut se produire. J'ai passé beaucoup de temps à comprendre cela! Je n'ai jamais besoin de Firebase-ui car j'utilisais Picasso pour récupérer des images à partir du stockage Firebase.
Aswini Iyer

Réponses:

214

Cela a fonctionné lorsque j'ai rétrogradé la appcompatdépendance de gradle de support , comme suit:

implementation 'com.android.support:appcompat-v7:27.0.2'

auparavant c'était

implementation 'com.android.support:appcompat-v7:27.1.0'

OU

Cela peut également être résolu en ajoutant simplement la dépendance de conception de support de la version 27.1.0 ou supérieure au niveau de votre application build.gradlecomme suit:

implementation 'com.android.support:design:27.1.0'
Ankit Mehta
la source
45
Une fois qu'ils publient de nouvelles versions, ils nous rendent fous à cause d'erreurs étranges. : |
Nguyen Minh Binh
En fait, c'était assez opposé dans mon cas. 27.0.xéchouait, en se précipitant pour 27.1.0faire compiler le projet ... meh ...
Marcin Orlowski
2
changez-le compile 'com.android.support:design:27.1.0'dans les nouvelles versions
Milad
@AnkitMehta J'ai un problème similaire et la rétrogradation n'a pas fonctionné pour moi.
Eswar
essayez d'ajouter une dépendance de conception de support.
Ankit Mehta
78

J'ai rencontré le même problème, j'ai ajouté des dépendances de conception de support Android au niveau de l'application build.gradle

Ajouter suivant:

implementation 'com.android.support:design:27.1.0'

dans build.gradle. Maintenant ça marche pour moi.

Balaji Purusothaman
la source
2
Travaille pour moi. Ce problème s'est produit après qu'une bibliothèque a commencé à utiliser 27.1.0 alors que l'application utilisait toujours 26.xx
Hong
Le nettoyage / la reconstruction du projet peut aider s'il ne résout pas le problème immédiatement. C'est ce qui a fonctionné pour moi.
f3d0r
La plupart de ces erreurs sont survenues en raison d'une incompatibilité de version. Si vous utilisez appcompat, il est préférable de concevoir des bibliothèques pour utiliser les dernières versions. Exemple: implémentation 'com.android.support:appcompat-v7:27.1.1' implémentation 'com.android.support:design:27.1.1'
eranda.del
Salut, pouvez-vous s'il vous plaît m'aider car j'ai utilisé cette bibliothèque pour ajouter une image dans le PDF github.com/TomRoush/PdfBox-Android/issues/219 et j'obtiens cette erreur Type de programme déjà présent: org.spongycastle.cert.AttributeCertificateHolder Quoi est-ce que je fais mal?
Priyanka Singhal le
32

Cela pourrait être à cause d'une bibliothèque, je l'ai affronté à cause de Glide.

C'était

implementation 'com.github.bumptech.glide:glide:4.7.1'

Alors j'ai ajouté exclude group: "com.android.support"et ça devient

implementation ('com.github.bumptech.glide:glide:4.7.1') {
        exclude group: "com.android.support"
    }
Kishan Solanki
la source
1
J'ai ajouté cette ligne aux 3 dépendances que j'ai utilisées. Cela a résolu mon erreur. Merci.
KhanStan99
13

Assurez-vous que ces deux versions sont de la même version dans votre fichier build.gradle au niveau de l'application

    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:design:27.1.1'

Je pense que cela devrait résoudre le problème

James Idowu
la source
12

Utilisez la dernière supportLibraryversion 27.1.1pour résoudre le problème. travaillé pour moi. (nombreux correctifs de bogues inclus - voir changelog )

LOG_TAG
la source
1
Je suis toujours confronté à des erreurs comme:Error:Program type already present: org.apache.http.impl.auth.HttpEntityDigester
Trinity
implémentation 'com.android.support:design:27.1.0 ajouter ce stackoverflow.com/questions/49112190
...
9

Personnellement, j'ajoute la ligne suivante à mon app / build.gradle:

implementation "com.android.support:design:${rootProject.ext.supportLibVersion}"

Avec cette syntaxe, la version est dynamique.

Jérôme Legrand
la source
6

J'utilise Android Studio 3.0 et je mets à niveau la dépendance du modèle de conception de 26.0.1 à 27.1.1 et l'erreur a disparu maintenant.

Ajouter un suivi dans gradle implementation 'com.android.support:design:27.1.1'

Dhruvisha
la source
6

Utilisation

implementation 'com.android.support:appcompat-v7:27.1.1'

N'utilisez pas comme

implementation 'com.android.support:appcompat-v7:27.+'

Cela peut vous donner une erreur et ne pas utiliser une version plus ancienne que celle-ci.

ou l'événement ne fait pas comme ça

implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1' 

etc ... nombre de bibliothèques et ensuite

implementation 'com.android.support:appcompat-v7:27.+'

la même bibliothèque mais elle a une version différente, cela peut vous donner une erreur.

Deven
la source
5

Je rétrograde le support

previously it was
implementation 'com.android.support:appcompat-v7:27.0.2'

Utilise le

implementation 'com.android.support:appcompat-v7:27.1.0'

implementation 'com.android.support:design:27.1.0'

Son travail heureux Codng

Keshav Gera
la source
7
Cela ressemble plus à une mise à niveau si vous passez de 27.0.2 à 27.1.0
Denny
4

Mise à jour importante

Les bibliothèques de support Android ne seront pas mises à jour après 28.0.0. Selon les notes de version de la bibliothèque de support -

Ce sera la dernière version de fonctionnalité sous l'empaquetage android.support, et les développeurs sont encouragés à migrer vers AndroidX 1.0.0 .

Utilisez donc plutôt les bibliothèques de support AndroidX . Dans votre cas, la bibliothèque de conception est maintenant disponible dans le package de matériaux.

dependencies {
    implementation 'com.google.android.material:material:1.0.0' // instead of design
    implementation 'androidx.appcompat:appcompat:1.0.2' // instead of support-v7
}

J'ai mis les dernières versions en dépendance, vous pouvez vérifier la dernière version ici au moment de la lecture.

Messages utiles:

  1. Introduction et intégration d'AndroidX
  2. En savoir plus sur Jetifier (moteur derrière la migration AndroidX)
  3. Quelques choses à faire et à ne pas faire
Khemraj
la source
2

J'ai eu ce problème également; et j'ai résolu cela de cette façon:

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
    def requested = details.requested
    if (requested.group == 'com.android.support') {
        if (!requested.name.startsWith("multidex")) {
            details.useVersion '26.0.1'
        }
    }
  }
}

attention mon SDk min était de 26, vous devez le changer avec le vôtre!

محمد
la source
2

"Le type de programme existe déjà" Supprimez le contenu de votre répertoire / build, il a un problème Dex (?) Avec les fichiers binaires générés. Arrivés à ces réponses comme vous, ils ont aidé à résoudre ce problème mais en ont créé beaucoup d'autres. La suppression de contenu de build fonctionne pour tous.

Vitali Pom
la source
1

Je sais que c'est une réponse tardive, mais j'ai eu le même problème et ma solution consistait simplement à ajouter implementation 'com.android.support:design:28.0.0ou l'une des bibliothèques de conception de support ci-dessus !!

raed
la source
1

Cela peut se produire lorsqu'une bibliothèque est chargée plusieurs fois dans gradle. Le plus souvent via d'autres bibliothèques connectées.

Supprimer une implémentation de cette bibliothèque dans build.gradle

Puis construire -> Effacer le projet

et vous pouvez exécuter l'assemblage)

Дмитрий Гаврилов
la source
0

Comme la dernière mise à jour d'Android ne prend pas en charge le mot clé «compile», utilisez «implémentation» en place dans le fichier build.gradle de votre module .

Et vérifiez soigneusement dans build.gradle la dépendance avec + signe comme celui-ci.

implementation 'com.android.support:support-v4:28.+'

S'il existe des dépendances comme celle-ci, mettez-les simplement à jour avec une version spécifique. Après ça:

  1. Gradle de synchronisation.
  2. Nettoyez votre projet.
  3. Reconstruisez le projet.
amit pandya
la source
0

Si l'une des réponses mentionnées ici ne fonctionne pas, allez dans Fichier> Invalidate Catches / Restart

Ssubrat Rrudra
la source
1
ça n'aide pas :(
Jorgesys
0

La solution pour cela est de supprimer cette dépendance suivante:

implementation 'com.android.support:design:26.1.0'

mettez les dépendances générales comme:

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:support-compat:26.1.0'
    implementation 'com.android.support:multidex:1.0.3'    
    implementation 'com.android.support:support-v4:26.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.facebook.android:audience-network-sdk:4.99.1'
}
Pradeep Sheoran
la source
0

L'ajout de ceci au projet l'a gradle.properties corrigé pour nous:

android.enableJetifier=true
android.useAndroidX=true
Pitel
la source
0

Votre script de construction doit correspondre aux dépendances de l'application build.gradle.

ext {
        buildToolsVersion = "27.0.3"
        minSdkVersion = 16
        compileSdkVersion = 27
        targetSdkVersion = 26
        supportLibVersion = "27.1.1"
    }


dependencies {
    .................
    ...................

    implementation 'com.android.support:support-v4:27.1.0'
    implementation 'com.android.support:design:27.1.0'
    ................
    ...........
}

si vous souhaitez rétrograder les dépendances, rétrograder également supportLibVersion et buildToolsVersion.

user3143487
la source
0

J'ai également rencontré le même problème. Mais ensuite, j'ai réalisé que les versions que j'utilise des bibliothèques de support n'étaient pas les mêmes.

Une fois que j'ai fait la même chose, l'erreur a disparu.

Dans ton cas

implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support:design:27.0.2'

ne sont pas les mêmes, vous venez de rétrograder appcompat à

implementation 'com.android.support:appcompat-v7:27.0.2'

par conséquent, votre problème est résolu.

Mais vous pourriez également avoir résolu si vous aviez pu mettre à niveau la version de conception de support à

implementation 'com.android.support:design:27.1.0'
Ankush Joshi
la source
0

Accédez au répertoire dans lequel vous avez placé des bibliothèques supplémentaires et supprimez les bibliothèques dupliquées.

BlackGraper
la source
-1

J'ai changé toutes les dépendances pour compiler plutôt que pour l'implémentation, puis je reconstruis le projet sans erreurs. Ensuite, je suis revenu à l'implémentation plutôt que de le laisser en tant que compilation.

Steve White
la source