启用MultiDex未用ProGuard,VS2017编译出现重复条目警告求助
解决Xamarin启用MultiDex后出现重复MANIFEST.MF的警告
我之前也碰到过这个一模一样的问题——虽然项目能正常构建运行,但输出窗口里的重复资源警告看着实在闹心。下面是我亲测有效的解决办法:
方法1:手动移除jar包中的重复MANIFEST.MF
问题的根源是多个依赖jar包(比如android-support-multidex.jar、SfChart.Android.jar)都自带了META-INF/MANIFEST.MF文件,MultiDex工具在合并资源时检测到重复项就会抛出警告。你可以这么操作:
- 找到项目引用的这些jar包文件,先备份一份以防出错
- 用压缩工具(比如WinRAR、7-Zip)打开jar包,删除里面的
META-INF/MANIFEST.MF文件 - 替换项目中原有的jar包,重新构建项目
方法2:通过MSBuild配置自动排除重复资源
如果不想手动修改jar包,可以直接在项目的.csproj文件里添加配置,让构建系统自动忽略重复的资源:
- 右键项目 → 选择“卸载项目”,再右键 → “编辑[你的项目名].csproj”
- 在
<PropertyGroup>节点中添加以下配置:
或者更精准地只排除MANIFEST.MF:<!-- 全局排除所有重复资源 --> <AndroidExcludeDuplicateResources>true</AndroidExcludeDuplicateResources><!-- 仅移除所有jar包中的META-INF/MANIFEST.MF --> <AndroidResourceRemoveFiles>**/META-INF/MANIFEST.MF</AndroidResourceRemoveFiles> - 保存文件,重新加载项目并构建,警告应该就消失了
方法3:更新依赖库版本
有时候这类重复资源问题是因为依赖库的旧版本存在打包缺陷,你可以检查并更新以下依赖:
- Xamarin.Android支持库(比如MultiDex相关的包)
- Syncfusion的SfChart.Android NuGet包
更新到最新稳定版本后,官方可能已经修复了这个重复MANIFEST.MF的问题
补充说明:这些警告本身不会影响应用的正常运行,MultiDex工具只是跳过了重复的资源文件,但如果想让输出窗口保持干净,上面的方法都能帮你解决问题。
内容的提问来源于stack exchange,提问作者user2721794
相关产品推荐
相关产品推荐

