You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建APK遇Duplicate entry: META-INF错误,请求技术支援

解决APK构建时META-INF/MANIFEST.MF重复条目错误

嘿,我之前也踩过一模一样的坑!折腾了好几天才搞定,给你几个亲测有效的解决方案,试试看:

首先先明确你的错误信息:

任务':app:buildProductionBuildDebugPreBundle'执行失败。
java.util.zip.ZipException: duplicate entry: META-INF/MANIFEST.MF

方案1:用packagingOptions处理重复文件

这是最直接的解决办法,在app模块的build.gradle里添加打包配置,告诉Gradle如何处理重复的MANIFEST.MF:

android {
    // 其他配置...
    packagingOptions {
        // 直接排除所有重复的MANIFEST.MF
        exclude 'META-INF/MANIFEST.MF'
        // 或者如果需要保留其中一个版本,用pickFirst
        // pickFirst 'META-INF/MANIFEST.MF'
    }
}

添加后同步项目,重新构建试试,大部分情况下这个方法就能解决问题。

方案2:排查并解决依赖冲突

重复的MANIFEST.MF通常是因为第三方库依赖了相同的子库,导致重复打包。你可以先查看项目的依赖树:
在终端执行:

./gradlew app:dependencies

仔细找有没有重复的依赖项(比如两个不同版本的同一个库),找到后在依赖声明里排除冲突部分,比如:

implementation('com.example:problem-library:2.0.0') {
    exclude group: 'com.example', module: 'conflicting-submodule'
}

方案3:彻底清理项目缓存

有时候Android Studio的缓存会导致奇怪的构建问题,试试彻底清理:

  1. 打开Android Studio,点击File -> Invalidate Caches...
  2. 勾选Invalidate and Restart,等待IDE重启
  3. 手动删除app模块下的build文件夹,以及项目根目录的.gradle文件夹
  4. 重新同步项目并构建

方案4:检查多模块项目的配置

如果是多模块项目,检查其他library模块的build.gradle有没有重复的打包/签名配置,确保所有模块的打包逻辑统一,避免重复生成MANIFEST.MF。

如果这些方法都不行,你可以把app模块build.gradle里的依赖和打包配置部分贴出来,大家能帮你更精准定位问题!

内容的提问来源于stack exchange,提问作者Ehsan Anjum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:54:44