androidX与android.support.v4.app不能共存的解决方案

升级到Android Studio 3.5版本后遇到Duplicate class错误,原因是androidX与android.support.v4.app冲突。解决方法是通过Refactor菜单选择Migrate to AndroidX,然后执行迁移操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**android studio升级到3.5版本, 各种报错, 代码各种修改.其中一个Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes?

详见报错log

(androidx.core:core:1.0.1) 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.1) 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.1) 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.1) 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.1) and classes.jar (com.android.support:support-comp
<think>嗯,用户遇到了Gradle构建时出现的错误:Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable。需要找出解决方法。 首先,我应该回忆一下这个错误常见的原因。根据引用[1],这个错误是由于CheckDuplicatesRunnable任务执行失败,通常是因为依赖冲突或重复的类。引用[4]提到第三方库中的旧版Support库冲突,所以需要检查依赖。 用户可能需要检查依赖项是否有重复。比如,不同的模块可能引入了同一个库的不同版本。这时候可以用Gradle的dependency树分析工具,运行./gradlew :app:dependencies来查看依赖树,找到冲突的地方。 另外,引用[3]建议迁移到AndroidX,因为Support库已经过时。用户可能需要添加android.useAndroidXandroid.enableJetifier到gradle.properties,这可以帮助自动迁移库,避免冲突。同时引用[2]提到删除一些旧的依赖,比如implementation 'com.android.support:viewpager:28.0.0',可能解决冲突。 还有可能问题出在缓存上。清理Gradle缓存和重新构建项目有时能解决临时问题。此外,检查Gradle版本是否过旧,更新到最新版本可能修复已知的兼容性问题。 用户可能需要逐步排除问题,比如先检查依赖冲突,然后尝试迁移到AndroidX,清理缓存,更新Gradle和插件版本。如果还是不行,可能需要手动排除重复的依赖,使用exclude语句。 最后,确保所有第三方库都支持AndroidX,否则可能需要寻找替代库。如果用户按照这些步骤操作,应该能解决这个构建错误。</think>针对Gradle构建过程中出现的$org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException$错误,以下是分步解决方案: ### 一、问题定位 该错误由$CheckDuplicatesRunnable$任务触发,表明存在依赖冲突或重复类文件。常见于以下场景: 1. 同一模块多版本依赖共存(如SupportAndroidX混用)[^4] 2. 不同模块引入相同库的不同版本 3. 缓存文件损坏导致校验失败 ### 二、解决方案步骤 1. **检查依赖树** 执行命令查看具体依赖冲突: ```bash ./gradlew :app:dependencies --configuration releaseRuntimeClasspath ``` 查找带有$→$标记的冲突版本[^1] 2. **统一依赖版本** ```gradle // 在build.gradle中添加版本约束 configurations.all { resolutionStrategy { force 'com.android.support:appcompat-v7:28.0.0', 'com.android.support:support-v4:28.0.0' } } ``` 3. **迁移到AndroidX** 在$gradle.properties$中添加: ```properties android.useAndroidX=true android.enableJetifier=true # 自动转换第三方库[^3] ``` 同步更新所有依赖声明: ```diff - implementation 'com.android.support:design:28.0.0' + implementation 'com.google.android.material:material:1.5.0' ``` 4. **清理构建缓存** ```bash ./gradlew cleanBuildCache rm -rf ~/.gradle/caches/ ``` 5. **排除重复依赖** ```gradle implementation('some.library') { exclude group: 'com.android.support', module: 'support-annotations' } ``` ### 三、预防措施 1. 保持Gradle版本更新(建议7.0+) 2. 定期执行依赖检查: ```bash ./gradlew lint ``` 3. 使用新版Android Studio的$Dependency Analysis$工具
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值