求助:突然出现':app:transformClassesWithMultidexlistForDebug'重复Zip条目错误
Execution failed for task ':app:transformClassesWithMultidexlistForDebug'重复Zip条目问题 遇到这种重复Zip条目的问题确实头疼,尤其是依赖多的时候很难定位。不过别慌,咱们一步步来排查解决:
1. 先精准定位重复的类
你现在不知道具体哪个类重复,这是解决问题的关键。直接运行下面的Gradle命令,它会输出任务执行的详细日志,里面会明确指出重复的类名:
./gradlew app:transformClassesWithMultidexlistForDebug --info
另外,也可以通过依赖树查看所有依赖,找出可能重复的库:
./gradlew app:dependencies
仔细看输出里的依赖项,有没有同一个库出现多个版本,或者不同库包含了相同的类。
2. 排除重复的依赖
一旦找到重复的库或类,就在你的build.gradle(app模块下的)里用exclude语法去掉重复的部分。举个例子,如果发现com.android.support:support-v4被多个依赖引入,就像这样处理:
implementation('第三方库的依赖坐标') { exclude group: 'com.android.support', module: 'support-v4' }
另外要注意AndroidX和旧Support库混合使用也会导致大量重复类,检查你的项目是不是已经完全迁移到AndroidX了,有没有残留的Support库依赖。
3. 清理缓存并重建项目
有时候本地缓存会导致奇怪的问题,哪怕回滚Git也没用。试试这几步:
- 执行Gradle清理命令:
./gradlew clean,然后再编译:./gradlew assembleDebug - 在Android Studio里点击
Build -> Clean Project,接着Build -> Rebuild Project - 极端情况可以清理Android Studio的缓存:
File -> Invalidate Caches...,勾选Invalidate and Restart,重启后再编译
4. 检查本地依赖和模块
别忘了检查你项目里的本地依赖,比如libs文件夹下的.aar或.jar文件,有没有和远程依赖重复的类。另外如果项目有多个模块,也要检查模块之间的依赖是不是引入了同一个库多次。
5. 确认Multidex配置正确
有时候Multidex本身配置不当也会触发这个错误,检查你的配置:
在build.gradle的defaultConfig里开启Multidex:
android { defaultConfig { // 其他配置... multiDexEnabled true } }
然后依赖Multidex库:
dependencies { implementation 'androidx.multidex:multidex:2.0.1' }
如果你的App有自定义的Application类,要么继承MultiDexApplication,要么在attachBaseContext方法里加上:
@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }
按照这些步骤来,应该能找到问题所在并解决。如果还是不行,可以把你的build.gradle文件内容贴出来,我再帮你针对性排查。
内容的提问来源于stack exchange,提问作者Akash Hajare

