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"
}

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'

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.


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"
    }

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


12

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


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.


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'


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.


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


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

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!


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.


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 !!


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)


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.

0

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


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

0

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

android.enableJetifier=true
android.useAndroidX=true

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.


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'

0

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


-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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.