我们在开发中常常遇到build成功,直接通过Android studio安装app时也能成功,但是一旦打包apk时就会报`Android 报错:Entry name 'AndroidManifest.xml' collided`。这个问题碰了几次比较头疼,现在写在博客里进行记录,并分享给大家。解决方法呢,网上一搜一大把,但是都有问题或效果不佳。
方案一:gradle版本退回3.5.3
方案可行,但是对于我这样的升级狂魔,升级了让我降级是不可能的,降级是不能接受的,不建议采纳。
方案二:使用旧打包工具
方案可行,在gradle.properties文件中添加以下内容,Android studio已经明确将要取消该打包方案,且不推荐使用了,优化的新打包方案在apk体积压缩等其他方面是很有优势的,不能为了解决这个问题丢失其他的优势,不建议采纳。
android.useNewApkCreator=false
方案三:删除项目中的所有build文件
该方案纯属扯淡,没有毛线用,方案不可行
方案四:关机重启或Invalidate Caches/Restart重启Android studio
该方案只会让你更失望,方案不可行
终极方案:更改打包生成路径
对的就是更改apk生成的路径,举个栗子,Android studio 打包默认路径是这样的:
等待你的就是`Entry name 'res/layout/test_toolbar.xml' collided`
解决办法,更改生成apk的路径,如
wonderful!问题解决了。 路径随意改,如果选的文件夹路径不存在,先创建好文件夹再继续操作就能成功。
2020.08.31补充
评论区中的@ElaineTaylor1213 博友说的没错,只要把原有准备生成.apk文件夹中已存在的.apk删除就可以了。