错误:程序类型已存在:android.support.design.widget.CoordinatorLayout$Behavior
Posted
技术标签:
【中文标题】错误:程序类型已存在:android.support.design.widget.CoordinatorLayout$Behavior【英文标题】:Error : Program type already present: android.support.design.widget.CoordinatorLayout$Behavior 【发布时间】:2018-08-13 05:02:57 【问题描述】:我在构建项目时遇到以下错误。在这个项目中没有使用 CoordinatorLayout。刚刚添加为 build.gradle 中的依赖项:
我正在使用 android Studio 3.2 Canary 4。
LogCat
AGPBI: "kind":"error","text":"程序类型已经存在:android.support.design.widget.CoordinatorLayout$Behavior","sources":[],"tool": “D8” :app:transformDexArchiveWithExternalLibsDexMergerForDebug 失败 FAILURE:构建失败并出现异常。 * 什么地方出了错: 任务 ':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/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"
【问题讨论】:
只需在 gradle 文件中添加 implementation 'com.android.support:design:27.1.1' @TusharLathiya 我有类似的问题,但降级对我有用。我使用的是 27.0.0 版 如果你曾经在应用依赖中安装了firebase-ui,这可能会发生。我花了很多时间来解决这个问题!我从不需要 firebase-ui,因为我使用 picasso 从 firebase 存储中检索图像。 【参考方案1】:当一个库多次加载到 gradle 中时,可能会发生这种情况。最常见的是通过其他连接的库。
删除一个实现这个库在 build.gradle
然后构建 -> 清除项目
你可以运行程序集)
【讨论】:
【参考方案2】:转到您放置其他库并删除重复库的目录。
【讨论】:
【参考方案3】:我也遇到了同样的问题。 但后来我意识到我使用的支持库的版本不一样。
一旦我做了同样的事情,错误就消失了。
你的情况
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'
【讨论】:
【参考方案4】:“程序类型已存在” 删除您的 /build 目录内容,生成的二进制文件存在一些 Dex(?) 问题。像你一样得到这些答案,他们帮助解决了这个问题,但也创造了许多其他问题。构建内容删除适用于所有人。
【讨论】:
【参考方案5】:您的构建脚本应与应用程序 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 。
【讨论】:
【参考方案6】:将此添加到项目的 gradle.properties
为我们修复了它:
android.enableJetifier=true
android.useAndroidX=true
【讨论】:
【参考方案7】:就个人而言,我将以下行添加到我的 app/build.gradle:
implementation "com.android.support:design:$rootProject.ext.supportLibVersion"
使用这种语法,版本是动态的。
【讨论】:
【参考方案8】:重要更新
Android 支持库在28.0.0
之后不会更新。根据Support Library Release Notes -
这将是 android.support 下的最后一个功能版本 打包,鼓励开发者migrate to 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
我已经把最新的版本放在了依赖中,你可以在阅读时check latest version这里。
有用的帖子:
-
AndroidX introduction & integration
Learn about Jetifier (engine behind AndroidX migration)
Some Do's and Dont's
【讨论】:
【参考方案9】:我将支持降级
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'
它的工作快乐编码
【讨论】:
如果您从 27.0.2 升级到 27.1.0,似乎更像是升级【参考方案10】:使用
implementation 'com.android.support:appcompat-v7:27.1.1'
不要用like
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.+'
同一个库,但版本不同,可能会报错。
【讨论】:
【参考方案11】:我知道这是一个迟到的答案,但我遇到了同样的问题,我的解决方案只是添加 implementation 'com.android.support:design:28.0.0
或任何上述支持设计库!!
【讨论】:
【参考方案12】:解决方案是删除以下依赖项:
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'
【讨论】:
【参考方案13】:我也有这个问题;我以这种方式解决了这个问题:
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 ,你必须用你的来改变它!
【讨论】:
【参考方案14】:确保这两个在您的应用级 build.gradle 文件中是相同的版本
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
我认为应该可以解决问题
【讨论】:
【参考方案15】:当我降级支持appcompat
gradle 依赖项时它起作用了,如下所示:
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'
【讨论】:
一旦他们发布了新版本,他们就会因为奇怪的错误让我们发疯。 :| 其实我的情况正好相反。27.0.x
失败了,同时碰到 27.1.0
使项目编译...嗯...
在新版本中改为compile 'com.android.support:design:27.1.0'
@AnkitMehta 我有类似的问题,降级对我没有用。
尝试添加支持设计依赖。【参考方案16】:
我正在使用 android studio 3.0 我将设计模式依赖项从 26.0.1 升级到 27.1.1,现在错误消失了。
在 gradle 中添加关注
implementation 'com.android.support:design:27.1.1'
【讨论】:
【参考方案17】:如果此处提到的任何答案都不起作用,请转到文件 > 无效捕获/重新启动
【讨论】:
它没有帮助:(【参考方案18】:可能是图书馆的原因,我是因为 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"
【讨论】:
我已将此行添加到我使用的所有 3 个依赖项中。它解决了我的错误。谢谢。【参考方案19】:由于 android 最新更新不支持“编译”关键字,请在您的模块 build.gradle 文件中使用“实现”。
并在 build.gradle 中使用 + 符号彻底检查依赖关系。
implementation 'com.android.support:support-v4:28.+'
如果有任何这样的依赖项,只需使用特定版本更新它们。 之后:
-
同步 gradle。
清理您的项目。
重建项目。
【讨论】:
【参考方案20】:将所有依赖项更改为编译而不是实现,然后我重新构建项目而没有错误。然后我切换回实现而不是将其保留为编译。
【讨论】:
【参考方案21】:使用最新的supportLibrary
,版本27.1.1
解决问题。为我工作。 (包括许多错误修复 - see changelog)
【讨论】:
我仍然面临一些错误,例如:Error:Program type already present: org.apache.http.impl.auth.HttpEntityDigester
实施 'com.android.support:design:27.1.0 添加此***.com/questions/49112190/…【参考方案22】:
我遇到了同样的问题,
我在应用级别添加了android支持设计依赖build.gradle
添加以下内容:
implementation 'com.android.support:design:27.1.0'
在 build.gradle 中。现在它为我工作。
【讨论】:
为我工作。此问题发生在库开始使用 27.1.0 而应用仍在使用 26.x.x 之后。 如果不能立即解决问题,清理/重建项目可能会有所帮助。这对我有用。 此类错误多为版本不兼容所致。如果使用 appcompat,设计库最好使用最新版本。示例:实现 'com.android.support:appcompat-v7:27.1.1' 实现 'com.android.support:design:27.1.1' 嗨,你能帮我吗,因为我使用这个库在 PDF github.com/TomRoush/PdfBox-Android/issues/219 中添加图像,我得到这个错误程序类型已经存在:org.spongycastle.cert.AttributeCertificateHolder 我是什么做错了吗? 使用./gradlew -q yourApp:dependencies --configuration debugRuntimeClasspath
检查重复的依赖项。确保不要依赖一个不同版本的库。以上是关于错误:程序类型已存在:android.support.design.widget.CoordinatorLayout$Behavior的主要内容,如果未能解决你的问题,请参考以下文章
错误:程序类型已存在:android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat
错误:程序类型已存在:android.support.design.widget.CoordinatorLayout$Behavior
错误:程序类型已存在:com.google.android.gms.internal.measurement.zzdz 添加分析后
Android:v7 支持 lib 27.1.0 的编译错误“程序类型已存在”android.support.v7.recyclerview.extensions.ListAdapter