Błąd: typ programu już istnieje: android.support.design.widget.CoordinatorLayout $ Behavior


129

Podczas tworzenia projektu pojawia się następujący błąd. nie używali CoordinatorLayout w tym projekcie. właśnie dodany jako zależność w build.gradle:

Używam Android Studio 3.2 Canary 4.

LogCat

AGPBI: {"kind": "error", "text": "Typ programu już istnieje: android.support.design.widget.CoordinatorLayout $ Behavior", "sources": [{}], "tool": "D8" }: app: transformDexArchiveWithExternalLibsDexMergerForDebug FAILED FAILURE: kompilacja nie powiodła się z wyjątkiem. * Co poszło nie tak: wykonanie nie powiodło się dla zadania „: app: transformDexArchiveWithExternalLibsDexMergerForDebug”.

com.android.builder.dexing.DexArchiveMergerException: Błąd podczas scalania archiwów dex: /windows/Other/app/build/intermediates/transforms/dexBuilder/debug/0.jar, / windows / Other / app / build /mediates / transforms / dexBuilder / debug / 1.jar, /windows/Other/app/build/intermediates/transforms/dexBuilder/debug/4.jar,. . ...................

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

Typ programu już obecny: 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
wystarczy dodać implementację „com.android.support:design:27.1.1” w pliku gradle
Tushar Lathiya

1
@TusharLathiya Mam podobny problem, ale obniżenie oceny zadziałało. Używam wersji 27.0.0
Eswar

Jeśli kiedykolwiek instalowałeś firebase-ui w zależności od aplikacji, może się to zdarzyć ... Spędziłem dużo czasu, aby to rozgryźć! Nigdy nie potrzebuję firebase-ui, ponieważ używałem Picassa do pobierania obrazów z magazynu Firebase.
Aswini Iyer

Odpowiedzi:


214

appcompatZadziałało, gdy obniżyłem poziom zależności od gradle wsparcia , na przykład:

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

wcześniej tak było

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

LUB

Można to również naprawić, dodając zależność projektu wsparcia wersji 27.1.0 lub nowszej do poziomu aplikacji build.gradlew następujący sposób:

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

45
Kiedy publikują nowe wersje, doprowadzają nas do szału z powodu dziwnych błędów. : |
Nguyen Minh Binh

Właściwie w moim przypadku było zupełnie odwrotnie. 27.0.xnie powiodło się, podczas wskakiwania na 27.1.0kompilację gotowego projektu ... eee ...
Marcin Orłowski

2
zmień to compile 'com.android.support:design:27.1.0'w nowych wersjach
Milad

@AnkitMehta Mam podobny problem i obniżanie klasy nie działa dla mnie.
Eswar

spróbuj dodać zależność projektu wsparcia.
Ankit Mehta

78

Napotkałem ten sam problem, dodałem zależności projektowe wsparcia Androida do poziomu aplikacji build.gradle

Dodaj następujące:

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

w build.gradle. Teraz to działa dla mnie.


2
Pracuje dla mnie. Ten problem wystąpił po tym, jak biblioteka zaczęła używać 27.1.0, gdy aplikacja nadal korzystała z 26.xx
Hong

Oczyszczenie / odbudowanie projektu może pomóc, jeśli nie rozwiąże problemu natychmiast. To mi się udało.
f3d0r

Przeważnie takie błędy występowały z powodu niekompatybilności wersji. Jeśli używasz appcompat, lepiej projektuj biblioteki, aby korzystały z najnowszych wersji. Przykład: implementacja 'com.android.support:appcompat-v7:27.1.1' implementacja 'com.android.support:design:27.1.1'
eranda.del

Cześć, czy możesz mi pomóc, ponieważ użyłem tej biblioteki do dodania obrazu w pliku PDF github.com/TomRoush/PdfBox-Android/issues/219 i otrzymuję ten błąd Typ programu już obecny: org.spongycastle.cert.AttributeCertificateHolder Co robię źle
Priyanka Singhal

użyj ./gradlew -q yourApp:dependencies --configuration debugRuntimeClasspathdo sprawdzenia zduplikowanych zależności. Upewnij się, że nie zależy od jednej biblioteki z różnymi wersjami.
Logan Guo

32

To może być spowodowane biblioteką, napotkałem to przez Glide'a.

To było

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

Więc dodałem exclude group: "com.android.support"i stało się

implementation ('com.github.bumptech.glide:glide:4.7.1') {
        exclude group: "com.android.support"
    }

1
Dodałem tę linię do wszystkich trzech zależności, z których korzystałem. To rozwiązało mój błąd. Dzięki.
KhanStan99,

14

Upewnij się, że te dwie wersje są w tej samej wersji w pliku build.gradle na poziomie aplikacji

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

Myślę, że to powinno rozwiązać problem



9

Osobiście dodaję następujący wiersz do mojej aplikacji / build.gradle:

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

Dzięki tej składni wersja jest dynamiczna.


6

Używam Android Studio 3.0 i uaktualniam zależność wzorców projektowych z 26.0.1 do 27.1.1 i błąd zniknął.

Dodaj obserwujących w gradle implementation 'com.android.support:design:27.1.1'


6

Posługiwać się

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

Nie używaj like

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

Może to spowodować błąd i nie używaj starszej wersji niż ta.

lub wydarzenie tego nie lubi

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

etc ... numery bibliotek, a następnie

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

ta sama biblioteka, ale ma inną wersję, może spowodować błąd.


5

Obniżam poziom wsparcia

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

Użyj tego

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

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

Jego Pracy Happy Codng


7
Wydaje się bardziej jak uaktualnienie, jeśli przejdziesz z 27.0.2 na 27.1.0
Denny

4

Ważna aktualizacja

Biblioteki obsługi Androida nie zostaną zaktualizowane po 28.0.0. Zgodnie z informacjami o wydaniu biblioteki pomocy technicznej -

Będzie to ostatnia wersja funkcji w pakiecie android.support, a programiści są zachęcani do migracji do AndroidX 1.0.0 .

Zamiast tego użyj bibliotek obsługujących AndroidX . W Twoim przypadku biblioteka projektów jest teraz dostępna w pakiecie materiałowym.

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

Uzależniłem najnowsze wersje, możesz sprawdzić najnowszą wersję tutaj w czasie czytania.

Przydatne posty:

  1. Wprowadzenie i integracja AndroidX
  2. Dowiedz się o Jetifier (silnik odpowiedzialny za migrację AndroidX)
  3. Niektóre zalecenia, a czego nie

2

Ja też miałem ten problem; i rozwiązałem to w ten sposób:

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

uważaj, mój min SDk to 26, musisz to zmienić ze swoim!


2

„Typ programu już istnieje” Usuń zawartość katalogu / build, ma jakiś problem Dex (?) Z wygenerowanymi plikami binarnymi. Otrzymałem te odpowiedzi, tak jak ty, pomogły rozwiązać ten problem, ale stworzyły wiele innych. Usuwanie zawartości kompilacji działa dla wszystkich.


1

Wiem, że to późna odpowiedź, ale miałem ten sam problem i moim rozwiązaniem było po prostu dodanie implementation 'com.android.support:design:28.0.0lub dowolna z powyższych bibliotek projektów wsparcia!


1

Może się to zdarzyć, gdy jedna biblioteka jest ładowana do gradle kilka razy. Najczęściej za pośrednictwem innych połączonych bibliotek.

Usuń implementację tej biblioteki w build.gradle

Następnie buduj -> Wyczyść projekt

i możesz uruchomić montaż)


0

Ponieważ najnowsza aktualizacja Androida nie obsługuje słowa kluczowego „kompiluj”, użyj słowa kluczowego „implementacja” w pliku build.gradle modułu .

I sprawdź dokładnie w build.gradle pod kątem zależności z takim znakiem + .

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

Jeśli istnieją takie zależności, po prostu zaktualizuj je określoną wersją. Po tym:

  1. Synchronizuj gradle.
  2. Wyczyść swój projekt.
  3. Odbuduj projekt.

0

Jeśli którakolwiek z wymienionych tutaj odpowiedzi nie działa, przejdź do Plik> Unieważnij połowy / Uruchom ponownie


1
to nie pomaga :(
Jorgesys

0

Rozwiązaniem tego problemu jest usunięcie tej zależności:

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

umieść ogólne zależności jako:

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

Dodanie tego do projektu gradle.properties rozwiązało problem:

android.enableJetifier=true
android.useAndroidX=true

0

Twój skrypt kompilacji powinien pasować do zależności build.gradle aplikacji.

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

jeśli chcesz obniżyć poziom zależności, obniż także wersję supportLibVersion i buildToolsVersion.


0

Ja też miałem ten sam problem. Ale potem zdałem sobie sprawę, że wersje bibliotek pomocniczych, których używam, nie są takie same.

Kiedy zrobiłem to samo, błąd zniknął.

W Twoim przypadku

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

nie są takie same, więc właśnie obniżyłeś appcompat do

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

stąd twój problem został rozwiązany.

Ale możesz również rozwiązać, gdybyś mógł zaktualizować wersję projektu wsparcia do

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

0

Przejdź do katalogu, w którym umieścisz dodatkowe biblioteki i usuń zduplikowane biblioteki.


-1

Zmieniłem wszystkie zależności na kompilację zamiast implementacji, potem odbudowuję projekt bez błędów. Następnie wróciłem do implementacji, zamiast zostawiać ją jako kompilację.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.