【问题标题】:After upgrade android version getting "Duplicate class android.support.v4.app.INotificationSideChannel"升级 android 版本后得到“重复类 android.support.v4.app.INotificationSideChannel”
【发布时间】:2019-09-12 14:35:47
【问题描述】:

在 android update 3.4 之前,我的应用程序运行完美,但在升级 android 之后,我的应用程序出现合并错误:

"Duplicate class android.support.v4.app.INotificationSideChannel"

android update 3.4
upgrade gradle 5.1.1 
upgrade sdk

Error:
    Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
    Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
    Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
    Duplicate class android.support.v4.graphics.drawable.IconCompatParcelizer found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
    Duplicate class android.support.v4.os.IResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
    Duplicate class android.support.v4.os.IResultReceiver$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
    Duplicate class android.support.v4.os.IResultReceiver$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
    Duplicate class android.support.v4.os.ResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
    Duplicate class android.support.v4.os.ResultReceiver$1 found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
    Duplicate class android.support.v4.os.ResultReceiver$MyResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
    Duplicate class android.support.v4.os.ResultReceiver$MyRunnable found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
    Duplicate class androidx.core.graphics.drawable.IconCompatParcelizer found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
    Duplicate class androidx.core.internal.package-info found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
    Duplicate class androidx.versionedparcelable.CustomVersionedParcelable found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
    Duplicate class androidx.versionedparcelable.NonParcelField found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
    Duplicate class androidx.versionedparcelable.ParcelField found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
    Duplicate class androidx.versionedparcelable.ParcelImpl found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
    Duplicate class androidx.versionedparcelable.ParcelImpl$1 found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
    Duplicate class androidx.versionedparcelable.ParcelUtils found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
    Duplicate class androidx.versionedparcelable.VersionedParcel found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
    Duplicate class androidx.versionedparcelable.VersionedParcel$1 found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
    Duplicate class androidx.versionedparcelable.VersionedParcel$ParcelException found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
    Duplicate class androidx.versionedparcelable.VersionedParcelParcel found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
    Duplicate class androidx.versionedparcelable.VersionedParcelStream found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
    Duplicate class androidx.versionedparcelable.VersionedParcelStream$FieldBuffer found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
    Duplicate class androidx.versionedparcelable.VersionedParcelStream$InputBuffer found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
    Duplicate class androidx.versionedparcelable.VersionedParcelable found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
    Duplicate class androidx.versionedparcelable.VersionedParcelize found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)

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

--------------------依赖------------

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:design:28.0.0'
    //noinspection GradleCompatible
//    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:support-compat:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:2.0.0-alpha4'
//    implementation 'com.android.support:design:28.0.0'
    testImplementation 'junit:junit:4.13-beta-2'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    //volley
    implementation 'com.android.volley:volley:1.1.0'
    //crop image library...
    implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.0'
    //ButterKnife
    implementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
    //retrofit
    implementation 'com.squareup.retrofit2:retrofit:2.5.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
    implementation 'com.squareup.retrofit2:adapter-rxjava:2.5.0'
    implementation 'io.reactivex:rxandroid:1.2.1'
    implementation 'com.github.traex.rippleeffect:library:1.3'
    //Google play services
    implementation 'com.google.android.gms:play-services-location:16.0.0'
    implementation 'com.google.android.gms:play-services-maps:16.1.0'
    //gson
    implementation 'com.google.code.gson:gson:2.8.5'
    // Room
    implementation 'android.arch.persistence.room:runtime:1.1.1'
    implementation 'com.android.support:support-v4:28.0.0'
    annotationProcessor "android.arch.persistence.room:compiler:1.1.1"
    implementation 'org.jsoup:jsoup:1.11.3'
    //cardview & recyclerview
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    //picasoo
    implementation 'com.squareup.picasso:picasso:2.71828'
    implementation 'com.android.support:support-annotations:28.0.0'
    implementation 'de.hdodenhof:circleimageview:3.0.0'
    implementation 'com.karumi:dexter:5.0.0'
    implementation 'com.journeyapps:zxing-android-embedded:3.4.0'
    //firebase
    implementation 'com.google.firebase:firebase-core:16.0.8'
    implementation 'com.google.firebase:firebase-ml-vision:19.0.3'
    //firebase-cloud massaging..
    implementation 'com.google.firebase:firebase-messaging:17.6.0'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

【问题讨论】:

  • 我们可以在您的build.gradle 文件中看到您的dependencies。您可能同时有 androidx 库和 com.android.support 库相互冲突
  • 确定@user3170251,
  • 我在这里更新依赖现在你可以看到我的项目依赖

标签: java android android-gradle-plugin build.gradle


【解决方案1】:

为什么会这样?

因为升级后,androidx.core:core 在某处被访问,此时您的项目仍未使用 androidx。所以像INotificationSideChannel 和许多其他类现在可以在两个地方找到——androidx.core:corecom.android.support:support-compat。这就是发生此错误的原因。

解决方案?

您需要迁移到您应该已经完成​​的 AndroidX。如果您不了解 AndroidX。请阅读What is AndroidX?

如何迁移当前项目

在 Android Studio 3.2(2018 年 9 月)中,可以直接选择将现有项目迁移到 AndroidX。这会自动折射所有包。

在迁移之前,强烈建议您备份您的项目。

现有项目

  • Android Studio > 重构菜单 > 迁移到 AndroidX...
  • 它将分析并在底部打开 Refractor 窗口。接受要完成的更改。

新项目

将这些标志放入您的gradle.properties

android.enableJetifier=true
android.useAndroidX=true

检查@Library mappings for equal AndroidX package.

检查@Official page of Migrate to AndroidX

【讨论】:

  • 谢谢,我认为这是唯一的解决方案,尽管我试图避免它,因为我对 AndroidX 一无所知。
【解决方案2】:

您的 androidx 库(可能在使用的库之一中)与 support 库发生冲突。

将这些行添加到您的 gradle.properties 文件中:(位于项目的根目录中)

android.useAndroidX=true
android.enableJetifier=true

Jetifier 工具将依赖于支持库的库迁移为依赖等效的 AndroidX 包。

【讨论】:

  • 这并没有解决我的问题。还有其他选择吗?
  • 你找到解决办法了吗?
  • 我也有这个问题。我刚刚将 gradle 版本从 2.3 升级到 3.4.1。我没有在我的应用程序中使用或集成 androidx。有人有其他解决方案吗?
  • @civanimahida 你确定,你没有使用任何第三方库,比如使用 androidx 的 firebase?
  • 谢谢我使用了firebase,当我删除它时,我没有再收到重复错误
【解决方案3】:

首先从顶部栏中选择 Refractor,然后从中选择 refract to androidx 这样它会创建一个 zip 文件 作为备份。

之后它会自动恢复正常并修复阻止手机应用程序运行的各种错误和错误

就是这样!!你做到了

【讨论】:

    猜你喜欢
    • 2019-09-18
    • 2020-04-16
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多