ข้อผิดพลาด: ประเภทของโปรแกรมมีอยู่แล้ว: android.support.design.widget.CoordinatorLayout $ Behavior


129

ฉันได้รับข้อผิดพลาดต่อไปนี้ขณะสร้างโครงการ ไม่ได้ใช้ CoordinatorLayout ในโครงการนี้ เพิ่งเพิ่มเป็นการพึ่งพาใน build.gradle:

ฉันใช้ Android Studio 3.2 Canary 4

LogCat

AGPBI: {"ชนิด": "ข้อผิดพลาด", "ข้อความ": "ชนิดของโปรแกรมมีอยู่แล้ว: android.support.design.widget.CoordinatorLayout $ พฤติกรรม", "แหล่งที่มา": [{}], "เครื่องมือ": "D8" }: app: transformDexArchiveWithExternalLibsDexMergerForDebug FAILED FAILURE: Build ล้มเหลวด้วยข้อยกเว้น * เกิดข้อผิดพลาด: การดำเนินการล้มเหลวสำหรับงาน ': แอป: transformDexArchiveWithExternalLibsDexMergerForDebug'

com.android.builder.dexing.DexArchiveMergerException: เกิดข้อผิดพลาดขณะผสานรวมคลังข้อมูล dex: /windows/Other/app/build/intermediates/transforms/dexBuilder/debug/0.jar, / windows / อื่น ๆ / app / build / ตัวกลาง / dexBuilder / debug / 1.jar, /windows/Other/app/build/intermediates/transforms/dexBuilder/debug/4.jar, . ...................

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

ชนิดของโปรแกรมมีอยู่แล้ว: 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
เพียงเพิ่มการใช้งาน 'com.android.support:design:27.1.1'ในไฟล์ gradle
Tushar Lathiya

1
@TusharLathiya ฉันมีปัญหาที่คล้ายกัน แต่การลดระดับได้ทำงานให้ฉัน ฉันใช้รุ่น 27.0.0
Eswar

หากคุณเคยติดตั้ง firebase-ui ในการพึ่งพาแอพสิ่งนี้สามารถเกิดขึ้นได้ .. ฉันใช้เวลามากในการคิดออก! ฉันไม่ต้องการ firebase-ui เนื่องจากฉันใช้ picasso เพื่อดึงภาพจากที่เก็บ firebase
Aswini Iyer

คำตอบ:


214

มันทำงานเมื่อฉันลดระดับการappcompatพึ่งพาการสนับสนุนgradle เช่น follwing:

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

ก่อนหน้านี้มันเป็น

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

หรือ

นอกจากนี้ยังสามารถแก้ไขได้โดยเพียงเพิ่มการสนับสนุนการออกแบบ รุ่น 27.1.0 ขึ้นไปในระดับแอปของคุณbuild.gradleดังนี้

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

45
เมื่อพวกเขาเผยแพร่เวอร์ชันใหม่พวกเขาทำให้เราคลั่งเพราะข้อผิดพลาดแปลก ๆ : |
เหงียนมินห์บินห์

ที่จริงมันค่อนข้างตรงกันข้ามกับเคสของฉัน 27.0.xล้มเหลวขณะที่ชนเพื่อ27.1.0ทำโครงการคอมไพล์ ... meh ...
Marcin Orlowski

2
เปลี่ยนcompile 'com.android.support:design:27.1.0'เป็นเวอร์ชั่นใหม่
Milad

@AnkitMehta ฉันมีปัญหาที่คล้ายกันและการลดระดับไม่ได้ทำงานสำหรับฉัน
Eswar

ลองเพิ่มการพึ่งพาการออกแบบสนับสนุน
Ankit Mehta

78

ฉันประสบปัญหาเดียวกันฉันเพิ่มการพึ่งพาการออกแบบ Android สำหรับแอพในระดับแอพ build.gradle

เพิ่มต่อไปนี้:

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

ใน build.gradle ตอนนี้มันใช้ได้สำหรับฉัน


2
ได้ผลสำหรับฉัน ปัญหานี้เกิดขึ้นหลังจากห้องสมุดเริ่มใช้ 27.1.0 ในขณะที่แอปยังคงใช้ 26.xx
Hong

การทำความสะอาด / การสร้างโครงการใหม่อาจช่วยได้หากไม่สามารถแก้ไขปัญหาได้ทันที นั่นคือสิ่งที่ได้ผลสำหรับฉัน
f3d0r

ข้อผิดพลาดดังกล่าวส่วนใหญ่เกิดขึ้นเนื่องจากรุ่นที่เข้ากันไม่ได้ หากใช้ appcompat ออกแบบไลบรารีให้ใช้เวอร์ชันล่าสุดดีกว่า ตัวอย่าง: การนำไปใช้ 'com.android.support:appcompat-v7:27.1.1' การนำไปใช้งาน 'com.android.support:design:27.1.1'
eranda.del

สวัสดีคุณช่วยฉันออกไปได้ไหมเมื่อฉันใช้ห้องสมุดนี้เพื่อเพิ่มรูปภาพในรูปแบบไฟล์ PDF github.com/TomRoush/PdfBox-Android/issues/219 และฉันได้รับข้อผิดพลาดประเภทของโปรแกรมนี้มีอยู่แล้ว: org.spongycastle.cert.AttributeCertificateHolder อะไร ฉันทำผิดหรือเปล่า?
Priyanka Singhal

32

มันอาจเป็นสาเหตุของห้องสมุดฉันเผชิญเพราะร่อน

มันเป็น

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

ดังนั้นฉันจึงเพิ่มexclude group: "com.android.support"และมันจะกลายเป็น

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

1
ฉันได้เพิ่มบรรทัดนี้ในการอ้างอิงทั้ง 3 รายการที่ฉันใช้ มันแก้ไขข้อผิดพลาดของฉัน ขอบคุณ
KhanStan99

13

ตรวจสอบให้แน่ใจว่าทั้งสองเป็นรุ่นเดียวกันในไฟล์ build.gradle ระดับแอปของคุณ

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

ฉันคิดว่าควรแก้ปัญหา


12

ใช้supportLibraryเวอร์ชันล่าสุด27.1.1เพื่อแก้ไขปัญหา ทำงานให้ฉัน (มีการแก้ไขข้อบกพร่องมากมาย - ดูการเปลี่ยนแปลง )


1
ฉันยังคงเผชิญกับความผิดพลาดบางอย่างเช่น:Error:Program type already present: org.apache.http.impl.auth.HttpEntityDigester
ทรินิตี้

การนำไปใช้งาน 'com.android.support:design:27.1.0 เพิ่มสิ่งนี้ stackoverflow.com/questions/49112190/
LOG_TAG

9

โดยส่วนตัวฉันเพิ่มบรรทัดต่อไปนี้ลงในแอพ / build.gradle ของฉัน:

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

ด้วยไวยากรณ์นี้เวอร์ชันจะเป็นแบบไดนามิก


6

ฉันใช้ android studio 3.0 และฉันอัพเกรดการพึ่งพารูปแบบการออกแบบจาก 26.0.1 เป็น 27.1.1 และข้อผิดพลาดจะหายไปในขณะนี้

เพิ่มการติดตามใน gradle implementation 'com.android.support:design:27.1.1'


6

ใช้

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

อย่าใช้สิ่งที่ชอบ

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

อาจทำให้คุณมีข้อผิดพลาดและไม่ใช้รุ่นเก่ากว่านี้

หรือเหตุการณ์ไม่ทำเช่นนี้

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

etc ... จำนวนไลบรารีและจากนั้น

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

ห้องสมุดเดียวกัน แต่มันมีเวอร์ชั่นที่แตกต่างมันสามารถทำให้คุณมีข้อผิดพลาด


5

ฉันลดระดับการสนับสนุน

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

ใช้มัน

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

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

มันมีความสุขในการทำงาน Codng


7
ดูเหมือนว่าจะเป็นการอัพเกรดหากคุณเปลี่ยนจาก 27.0.2 เป็น 27.1.0
Denny

4

การปรับปรุงที่สำคัญ

ห้องสมุดสนับสนุน Android จะไม่ได้รับการอัปเดตหลังจาก28.0.0นั้น อ้างอิงจากบันทึกการสนับสนุนรีลีสไลบรารี -

นี้จะมีการเปิดตัวคุณลักษณะที่ผ่านมาภายใต้บรรจุภัณฑ์ android.support และนักพัฒนามีกำลังใจที่จะโยกย้ายไป AndroidX 1.0.0

ดังนั้นให้ใช้ไลบรารีสนับสนุนAndroidXแทน ในไลบรารีการออกแบบเคสของคุณจะมีให้ในแพ็คเกจวัสดุ

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

ฉันใส่รุ่นล่าสุดในการพึ่งพาคุณสามารถตรวจสอบรุ่นล่าสุดที่นี่ในเวลาอ่าน

กระทู้ที่มีประโยชน์:

  1. การแนะนำ & การรวม AndroidX
  2. เรียนรู้เกี่ยวกับ Jetifier (เอ็นจิ้นหลังการโยกย้าย AndroidX)
  3. บางสิ่งที่ควรและไม่ควรทำ

2

ฉันมีปัญหานี้เช่นกัน และฉันได้แก้ไขมันด้วยวิธีนี้:

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

ระวัง SD ขั้นต่ำของฉันคือ 26 คุณต้องเปลี่ยนกับคุณ!


2

"ประเภทโปรแกรมมีอยู่แล้ว" ลบเนื้อหาไดเรกทอรี / build ของคุณมีปัญหา Dex (?) กับไฟล์ไบนารีที่สร้างขึ้น เมื่อตอบคำถามเหล่านี้เหมือนกับคุณพวกเขาช่วยแก้ไขปัญหานี้ แต่สร้างคนอื่นอีกมากมาย การลบเนื้อหาบิลด์ทำงานได้สำหรับทุกคน


1

ฉันรู้ว่ามันเป็นคำตอบที่ล่าช้า แต่ฉันมีปัญหาเดียวกันและวิธีแก้ปัญหาของฉันก็แค่เพิ่มimplementation 'com.android.support:design:28.0.0หรือสนับสนุนไลบรารีการออกแบบใด ๆ ข้างต้น !!


1

สิ่งนี้อาจเกิดขึ้นได้เมื่อโหลดหนึ่งไลบรารี่เข้าสู่การเกร็กหลายครั้ง ส่วนใหญ่มักจะผ่านห้องสมุดเชื่อมต่ออื่น ๆ

ลบการใช้งานไลบรารีนี้ในbuild.gradle

จากนั้นสร้าง -> ล้างโครงการ

และคุณสามารถเรียกใช้แอสเซมบลี)


0

ในฐานะที่เป็น android ปรับปรุงล่าสุดไม่สนับสนุน 'รวบรวม' คำหลักใช้ 'การใช้งาน' ในสถานที่ภายในโมดูลbuild.gradleของคุณไฟล์

และตรวจสอบอย่างละเอียดใน build.gradle สำหรับการพึ่งพาด้วยเครื่องหมาย+เช่นนี้

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

หากมีการพึ่งพาใด ๆ เช่นนี้เพียงแค่อัปเดตพวกเขาด้วยรุ่นที่เฉพาะเจาะจง หลังจากนั้น:

  1. ซิงค์การไล่ระดับสี
  2. ทำความสะอาดโครงการของคุณ
  3. สร้างโครงการใหม่

0

หากคำตอบใด ๆ ที่กล่าวถึงในที่นี้ไม่สามารถใช้งานได้ให้ไปที่ไฟล์> ทำให้การจับ / เริ่มใช้งานไม่ถูกต้อง


1
มันไม่ช่วย :(
Jorgesys

0

วิธีแก้ปัญหาสำหรับสิ่งนี้คือการลบการพึ่งพาต่อไปนี้:

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

ใส่การอ้างอิงทั่วไปเป็น:

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

การเพิ่มสิ่งนี้เข้ากับโครงการ gradle.propertiesแก้ไขให้กับเรา:

android.enableJetifier=true
android.useAndroidX=true

0

build ของคุณควรตรงกับ application build.gradle dependencies

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

ถ้าคุณต้องการดาวน์เกรดการพึ่งพาคุณต้องดาวน์เกรด supportLibVersion และ buildToolsVersion ด้วย


0

ฉันยังประสบปัญหาเดียวกัน แต่ฉันก็รู้ว่ารุ่นที่ฉันใช้งานอยู่ของไลบรารี่สนับสนุนนั้นไม่เหมือนกัน

เมื่อฉันทำมันเหมือนกันข้อผิดพลาดก็หายไป

ในกรณีของคุณ

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

ไม่เหมือนกันดังนั้นคุณเพิ่งลดระดับ appcompat เป็น

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

ดังนั้นปัญหาของคุณได้รับการแก้ไข

แต่คุณสามารถแก้ไขได้หากคุณสามารถอัพเกรดรุ่นการออกแบบสนับสนุนเป็น

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

0

ไปที่ไดเรกทอรีที่คุณใส่ไลบรารีเพิ่มเติมและลบไลบรารีที่ซ้ำกัน


-1

เปลี่ยนการอ้างอิงทั้งหมดเพื่อคอมไพล์แทนที่จะใช้งานจากนั้นฉันจะสร้างโครงการใหม่โดยไม่มีข้อผิดพลาด จากนั้นฉันเปลี่ยนกลับไปใช้งานแทนที่จะปล่อยให้มันคอมไพล์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.