java - 构建项目时实现新依赖项时,在模块classes.jar中发现重复的类

标签 java android gradle dependencies

当我添加新的依赖项时实现'com.github.GoodieBag:Pinview:v1.4'在构建时出现错误。同步成功。

Duplicate class android.support.design.widget.CoordinatorLayout$1 found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:26.0.1)
Duplicate class android.support.design.widget.CoordinatorLayout$Behavior found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:26.0.1)
Duplicate class android.support.design.widget.CoordinatorLayout$DefaultBehavior found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:26.0.1)
Duplicate class android.support.design.widget.CoordinatorLayout$DispatchChangeEvent found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:26.0.1)
Duplicate class android.support.design.widget.CoordinatorLayout$HierarchyChangeListener found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:26.0.1)
Duplicate class android.support.design.widget.CoordinatorLayout$LayoutParams found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:26.0.1)
Duplicate class android.support.design.widget.CoordinatorLayout$OnPreDrawListener found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:26.0.1)
Duplicate class android.support.design.widget.CoordinatorLayout$SavedState found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:26.0.1)
Duplicate class android.support.design.widget.CoordinatorLayout$SavedState$1 found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:26.0.1)
Duplicate class android.support.design.widget.CoordinatorLayout$ViewElevationComparator found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:26.0.1)
Duplicate class android.support.v13.view.DragAndDropPermissionsCompat found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v13:26.0.1)
Duplicate class android.support.v13.view.DragStartHelper found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v13:26.0.1)
Duplicate class android.support.v13.view.DragStartHelper$1 found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v13:26.0.1)
Duplicate class android.support.v13.view.DragStartHelper$2 found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v13:26.0.1)
Duplicate class android.support.v13.view.DragStartHelper$OnDragStartListener found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v13:26.0.1)
Duplicate class android.support.v13.view.inputmethod.EditorInfoCompat found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v13:26.0.1)
Duplicate class android.support.v13.view.inputmethod.InputConnectionCompat found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v13:26.0.1)
Duplicate class android.support.v13.view.inputmethod.InputConnectionCompat$1 found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v13:26.0.1)
Duplicate class android.support.v13.view.inputmethod.InputConnectionCompat$OnCommitContentListener found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v13:26.0.1)
Duplicate class android.support.v13.view.inputmethod.InputContentInfoCompat found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v13:26.0.1)
Duplicate class android.support.v13.view.inputmethod.InputContentInfoCompat$InputContentInfoCompatApi25Impl found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v13:26.0.1)
Duplicate class android.support.v13.view.inputmethod.InputContentInfoCompat$InputContentInfoCompatBaseImpl found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v13:26.0.1)
Duplicate class android.support.v13.view.inputmethod.InputContentInfoCompat$InputContentInfoCompatImpl found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v13:26.0.1)

Go to the documentation to learn how to Fix dependency resolution errors.

尝试过

 implementation 'com.github.GoodieBag:Pinview:v1.4'{
        exclude group: "com.android.support", module: "support-compat"
        exclude group: "com.android.support", module: "coordinatorlayout"
    }

但同样的事情发生了。

如果我添加这样的配置

 configurations {
        all {
            exclude group: "com.android.support", module: "support-compat"
            exclude group: "com.android.support", module: "coordinatorlayout"
        }
    }

出现此错误

Android resource linking failed
error: resource style/TextAppearance.Compat.Notification.Info (aka com.xuno.portal:style/TextAppearance.Compat.Notification.Info) not found.
error: resource style/TextAppearance.Compat.Notification.Info (aka com.xuno.portal:style/TextAppearance.Compat.Notification.Info) not found.
error: resource style/TextAppearance.Compat.Notification.Info (aka com.xuno.portal:style/TextAppearance.Compat.Notification.Info) not found.
error: resource style/TextAppearance.Compat.Notification (aka com.xuno.portal:style/TextAppearance.Compat.Notification) not found.
error: resource style/TextAppearance.Compat.Notification (aka com.xuno.portal:style/TextAppearance.Compat.Notification) not found.
error: resource style/TextAppearance.Compat.Notification (aka com.xuno.portal:style/TextAppearance.Compat.Notification) not found.
error: resource style/TextAppearance.Compat.Notification.Time (aka com.xuno.portal:style/TextAppearance.Compat.Notification.Time) not found.
error: resource style/TextAppearance.Compat.Notification.Time (aka com.xuno.portal:style/TextAppearance.Compat.Notification.Time) not found.
error: resource style/TextAppearance.Compat.Notification.Time (aka com.xuno.portal:style/TextAppearance.Compat.Notification.Time) not found.
error: resource style/TextAppearance.Compat.Notification.Title (aka com.xuno.portal:style/TextAppearance.Compat.Notification.Title) not found.
error: resource style/TextAppearance.Compat.Notification.Title (aka com.xuno.portal:style/TextAppearance.Compat.Notification.Title) not found.
error: resource style/TextAppearance.Compat.Notification.Title (aka com.xuno.portal:style/TextAppearance.Compat.Notification.Title) not found.
error: failed linking references.

这是我的build.gradle

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'realm-android'

apply plugin: 'io.fabric'


android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.xxx.yyy"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 14
        versionName "2.2.1"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }


    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

}
allprojects {
    repositories {
        maven { url "https://jitpack.io" }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })

    implementation 'com.android.support:support-v4:26.0.1'
    implementation 'com.android.support:appcompat-v7:26.0.1'
    implementation 'com.android.support:design:26.0.1'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.squareup.okhttp3:okhttp:3.9.0'
    implementation 'se.emilsjolander:stickylistheaders:2.7.0'
    implementation 'com.afollestad.material-dialogs:core:0.9.4.7'
    implementation 'com.google.firebase:firebase-core:11.4.0'
    implementation 'com.google.firebase:firebase-messaging:11.4.0'
    implementation 'com.google.android.gms:play-services:11.4.0'
    implementation 'com.android.support:multidex:1.0.1'
    implementation 'com.github.d-max:spots-dialog:0.7@aar'
    implementation 'com.android.support:recyclerview-v7:26.0.1'
    implementation 'com.google.zxing:core:3.4.0'
    implementation 'com.github.ybq:Android-SpinKit:1.2.0'
    implementation 'com.google.code.gson:gson:2.8.5'
    implementation 'es.voghdev.pdfviewpager:library:1.0.6'
    implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
    implementation 'com.squareup.picasso:picasso:2.71828'
    implementation 'com.github.chrisbanes:PhotoView:2.0.0'
    implementation 'de.hdodenhof:circleimageview:3.0.1'
    implementation 'com.crashlytics.sdk.android:crashlytics:2.10.0'
    implementation 'com.nabinbhandari.android:permissions:3.8'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.github.davidpizarro:pinview:1.0.0'
    implementation 'com.github.GoodieBag:Pinview:v1.4' //newly added one


}

apply plugin: 'com.google.gms.google-services'

repositories {
    mavenCentral()
}

最佳答案

如果你Migrate to Androidx.会更好

AndroidX replaces the original support library APIs with packages in the androidx namespace. Only the package and Maven artifact names changed; class, method, and field names did not change.

您可以通过从菜单栏中选择重构 > 迁移到 AndroidX,将现有项目迁移到 AndroidX。

您的依赖项将为

dependencies {
     ..........
     implementation 'androidx.legacy:legacy-support-v4:1.0.0'
     implementation 'com.google.android.material:material:1.2.0-alpha03'
     implementation 'androidx.appcompat:appcompat:1.1.0'
     implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

}

还有

android {
    compileSdkVersion 29
    defaultConfig {
        applicationId "com.xxx.yyy"
        minSdkVersion 21
        targetSdkVersion 29
        versionCode 14
        versionName "2.2.1"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }

关于java - 构建项目时实现新依赖项时,在模块classes.jar中发现重复的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62060605/

相关文章:

java - 一个类如何扩展两个不同的类,其中一个类来自外部库,另一个类是内置的

java - 尝试将计时器读取为 00 :00:00

java - 使用 <context :component-scan> annotation in spring xml 时出现编译错误

android - 将变量声明到 build.gradle 中,该变量与带有 flavors 后缀的 applicationId 相匹配

build - Gradle内部使用Ivy吗?

java - 在 TestNG 和 Gradle 中包含(不排除)组

java - 将 ArrayList<Object> 作为参数传递给方法,处理 arrayList 并返回它 - Java

android - 当我尝试将 mobile-center-push 添加到 React Native 项目时找不到 com.google.firebase :firebase-core:11. 0.0

android - 无法处理属性 android :fillColor ="@android:color/white"

java - gradle 构建文件放在哪里?