Android项目运行报INSTALL_PARSE_FAILED_MANIFEST_MALFORMED修复方法
INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 修复方案(复制文件中断覆盖场景)
问题根因
同盘复制相近名称项目时中途取消,会导致两个项目的文件出现片段式覆盖、截断损坏,其中最容易触发该安装错误的是AndroidManifest.xml清单文件损坏、构建缓存残留损坏的清单片段,最终打包出的APK在系统解析阶段校验不通过,返回null错误提示。
分步修复操作
- 清理全量损坏构建缓存
- 关闭Android Studio,在任务管理器结束所有
adb.exe、java.exe(对应Gradle进程)进程,避免文件被占用无法删除 - 进入项目根目录
C:\Users\hp\Desktop\TrafficAccident,删除根目录下的build文件夹,再进入app子目录删除其中的build文件夹 - 重新打开项目,依次点击菜单栏 Build > Clean Project,等待清理任务执行完成后,再点击 Build > Rebuild Project 重新全量构建,不要直接触发运行安装
- 关闭Android Studio,在任务管理器结束所有
- 校验清单文件完整性
构建如果直接报错,或者重新构建后依然安装失败,打开app/src/main/AndroidManifest.xml做逐段检查:- 检查根节点
<manifest>的package属性值是否为原项目正确包名,有没有出现属性值截断、缺失闭合引号、被替换为副本项目包名的问题 - 检查所有四大组件(Activity/Service/Receiver/Provider)的
android:name属性是否完整,有没有出现半截类名、重复声明的组件节点 - 检查文件末尾是否正常闭合
</manifest>标签,有没有复制中断导致的乱码、半截文本残留 - 如果配置了多渠道/构建变体,还要同步检查
src/debug、src/release以及自定义变体对应目录下的Manifest文件是否损坏
- 检查根节点
- 清理设备端安装残留
- 执行命令
adb kill-server && adb start-server重启adb服务 - 执行
adb uninstall 原项目包名卸载设备上已安装的同包名旧版本,如果卸载失败,执行adb shell pm uninstall --user 0 原项目包名强制卸载当前用户下的残留安装数据 - 重新运行安装debug包即可
- 执行命令
- 兜底校验Gradle配置
如果以上操作都无效,检查根目录build.gradle、app/build.gradle文件是否被覆盖损坏:重点确认applicationId配置是否正确、SDK版本配置有没有语法错误,Gradle配置损坏会导致Manifest合并阶段生成格式非法的最终清单文件,触发同类报错。
内容的提问来源于stack exchange,提问作者Mahmoud Darwish
相关产品推荐
相关产品推荐

