错误: 已经存在的程序类型: android.support

在构建项目时,我得到了以下错误。在这个项目中没有使用坐标布局。在 build.gradle 中作为依赖项添加:

我使用的是 Android Studio 3.2 Canary 4。

LogCat

AGPBI: {“ kind”: “ error”,“ text”: “ Program type already be: android.Support.Design.widget. CollaboratorLayout $Behavior”,“ source”: [{}] ,“ tool”: “ D8”} : app: formDexArchiveWithExternalLibsDexMergerForDebug 失败 失败: 构建失败,有异常。 错在哪里 * : 任务“ : app: formDexArchiveWithExternalLibsDexMergerForDebug”执行失败。

异常: 合并 dex 归档时出错:/windows/Other/app/build/mediates/transforms/dexBuilder/debug/0.jar,/windows/Other/app/build/mediates/transforms/dexBuilder/debug/1.jar,/windows/Other/app/build/mediates/debug/1.jar,/transforms/dexBuilder/debug/1.jar,/windows/Other/build/mediates/transforms/dexBuilder/debug/4.jar, . . ...................

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

已经存在的程序类型: android.support

建造,分级

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"
}
190262 次浏览

我也面临着同样的问题, 我将 android 支持设计依赖添加到应用程序级别 build.gradle

加入以下内容:

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

在建筑。梯度。现在它为我工作。

当我降低对 appcompat级别依赖性的支持级别时,它起作用了,如下所示:

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'

使用最新的 supportLibrary,版本 27.1.1来解决这个问题。为我工作。(许多错误修复包括-查看更新日志)

将所有依赖项更改为编译而不是实现,然后重新生成项目而没有错误。然后我切换回实现,而不是把它作为编译。

使用

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

同一个库,但它有不同的版本,它可以给你一个错误。

由于 android 最新的更新不支持“编译”关键字,请在模块 建造,分级文件中使用“实现”。

在 build.gradle 中彻底检查 +符号的依赖性,如下所示。

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

如果有任何这样的依赖项,只需用特定的版本更新它们。 之后:

  1. 同步分级。
  2. 清理你的项目。
  3. 重建项目。

这可能是一个图书馆的原因,我面对它,因为格莱德。

曾经是

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.0 我将设计模式依赖关系从26.0.1升级到27.1.1,错误现在已经消失了。

在分级中添加以下内容 implementation 'com.android.support:design:27.1.1'

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

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

我觉得这样就能解决问题了

我也有这个问题,我用这种方法解决了:

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,你必须改变它与你的!

解决这个问题的方法是,删除以下依赖关系:

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

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

我降级支持

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'

它工作愉快的编码

重要更新资料

Android 支持库在 28.0.0之后不会更新

这将是 android.support 下的最后一个特性版本 打包,并鼓励开发人员 迁移到 AndroidX1.0.0

因此,使用 安卓支持库。在您的情况下,设计库现在可以在材料包。

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. 一些该做和不该做的事

就我个人而言,我会在 app/build.gradle 中添加以下代码:

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

使用这种语法,版本是动态的。

将这个加入到 项目的 gradle.properties为我们修复了它:

android.enableJetifier=true
android.useAndroidX=true

构建脚本应该与应用程序 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'
................
...........
}

如果您想要降低依赖关系的级别,那么也可以降低 support LibVersion 和 buildToolsVersion 的级别。

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

我也面临着同样的问题。 但后来我意识到,我使用的支持库版本并不相同。

一旦我做了同样的事情,错误就消失了。

对你来说

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

是不一样的,所以你只是降级应用程序到

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

所以你的问题解决了。

但是,如果您能够将支持设计版本升级到

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

转到放置其他库的目录并删除重复的库。

这种情况可能发生在一个图书馆多次加载到分级中,通常是通过其他连接的图书馆。

建造,分级中删除实现 这个库

然后 建造-> 清除项目

并且可以运行程序集)