Android编译报错:Duplicate zip entry问题求助
解决Duplicate zip entry: CoordinatorLayout$Behavior.class编译错误
嘿,这个问题我之前帮不少开发者搞定过!核心原因就是你的项目里重复引入了包含CoordinatorLayout$Behavior类的依赖,通常是Android Support库版本不统一,或者某个第三方库偷偷嵌套了重复的Support模块导致的。下面给你几个靠谱的解决办法,按顺序试试:
1. 统一所有Support库的版本
Android Support库的版本必须完全一致,不然很容易出现类重复或冲突。你可以在项目根目录的build.gradle里统一配置版本:
ext { supportLibVersion = '27.1.0' // 也可以换成你想升级到的稳定版本,比如28.0.0 }
然后在app模块的build.gradle里,所有Support相关依赖都引用这个统一版本:
implementation "com.android.support:appcompat-v7:${supportLibVersion}" implementation "com.android.support:design:${supportLibVersion}" implementation "com.android.support:support-core-ui:${supportLibVersion}" // 其他用到的Support库都照这个格式改
2. 排除第三方库带来的重复依赖
如果是某个第三方库内部依赖了不同版本的Support库,你可以在引入该库时主动排除重复的模块。比如假设some-library带了旧版本的support-core-ui,就这么写:
implementation('com.example:some-library:1.0.0') { exclude group: 'com.android.support', module: 'support-core-ui' }
要是冲突来自design库,就把module改成design就行。
3. 清理Gradle缓存
有时候Gradle缓存的旧依赖文件会抽风,你可以试试:
- 在Android Studio里点
File -> Invalidate Caches / Restart,选Invalidate and Restart,等重启完再编译 - 或者手动删掉错误提示里的缓存目录:
C:\Users\grand\.gradle\caches\transforms-1,然后重新构建项目
4. 检查Multidex配置是否正确
确保你的Multidex配置没毛病,在app模块的build.gradle里:
android { defaultConfig { multiDexEnabled true } } dependencies { implementation 'com.android.support:multidex:1.0.3' }
如果你的App用了自定义Application类,要么让它继承MultiDexApplication,要么在attachBaseContext里初始化Multidex:
public class MyApplication extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } }
最后记得先执行Clean Project,再Rebuild Project,一般就能解决问题啦!
内容的提问来源于stack exchange,提问作者Ibrahim Akbar
相关产品推荐
相关产品推荐

