错误:程序类型已存在:android.support.design.widget.CoordinatorLayout $ Behavior


129

构建项目时出现以下错误。在此项目中未使用CoordinatorLayout。刚刚作为依赖添加到build.gradle中:

我正在使用Android Studio 3.2 Canary 4。

LogCat

AGPBI:{“种类”:“错误”,“文本”:“程序类型已存在:android.support.design.widget.CoordinatorLayout $ Behavior”,“源”:[{}],“工具”:“ D8” }:app:transformDexArchiveWithExternalLibsDexMergerForDebug失败失败:生成失败,发生异常。*出了什么问题:任务':app:transformDexArchiveWithExternalLibsDexMergerForDebug'的执行失败。

com.android.builder.dexing.DexArchiveMergerException:合并dex归档文件时出错:/windows/Other/app/build/intermediates/transforms/dexBuilder/debug/0.jar、/windows/Other/app/build/intermediates/transforms/ dexBuilder / debug / 1.jar,/ windows / Other / app / build / intermediates / transforms / dexBuilder / debug / 4.jar 、。。..........

/ windows /其他/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这个文件
图莎尔Lathiya

1
@TusharLathiya我有一个类似的问题,但是降级对我有用。我正在使用版本27.0.0
Eswar

如果您曾经在应用程序依赖项中安装过firebase-ui,则可能会发生这种情况。.我花了很多时间来解决这个问题!我永远不需要firebase-ui,因为我正在使用毕加索从firebase存储中检索图像。
Aswini Iyer

Answers:


214

当我降级支持appcompatgradle依赖项时,它起作用了,例如以下:

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
要使

2
更改compile 'com.android.support:design:27.1.0'为新版本
Milad

@AnkitMehta我有一个类似的问题,降级对我没有用。
Eswar

尝试添加支持设计依赖项。
安基·梅塔

78

我遇到了同样的问题,我在应用程序级别添加了android支持设计依赖项 build.gradle

添加以下内容:

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

在build.gradle中。现在它为我工作。


2
为我工作。在图书馆开始使用27.1.0后,该应用仍在使用26.xx之后,就会发生此问题
Hong 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

可能是因为图书馆的缘故,由于Glide我遇到了它。

它是

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

13

确保这两个在您的应用级别的build.gradle文件中是相同的版本

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

我认为应该解决问题



9

我个人将以下行添加到我的app / 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' 

等等...一些图书馆,然后

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'

其工作愉快的编码


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

请注意,我的最小SDk为26,您必须使用它来更改它!


2

“程序类型已存在”删除您的/ build目录内容,它在生成的二进制文件中存在一些Dex(?)问题。像您一样得到这些答案,他们帮助解决了这个问题,但又创造了许多其他问题。构建内容清除适用于所有人。


1

我知道这是一个迟来的答案,但是我遇到了同样的问题,我的解决方案是添加implementation 'com.android.support:design:28.0.0或添加任何上述支持设计库!


1

一个库多次加载到gradle中时,可能会发生这种情况。最常见的是通过其他连接的库。

build.gradle中删除该库的实现

然后建立 -> 清除项目

您可以运行该程序集)


0

由于android最新更新不支持'compile'关键字,因此请在模块build.gradle文件内的位置使用'implementation' 。

并在build.gradle中彻底检查带有+号的依赖关系,如下所示。

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

如果有类似的依赖项,只需将其更新为特定版本即可。之后:

  1. 同步gradle。
  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.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'
    ................
    ...........
}

如果您想降级依赖项,那么也请降级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

将所有依赖项更改为编译而不是实现,然后重新构建项目而没有错误。然后,我转回实现而不是将其保留为编译状态。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.