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

升级targetSdkVersion至31时INSTALL_PARSE_FAILED_MANIFEST_MALFORMED报错

解决targetSdkVersion升级到31后INSTALL_PARSE_FAILED_MANIFEST_MALFORMED报错的排查方案
  • 检查第三方库的Manifest合并问题:很多时候报错根源不在你自己的Manifest,而是依赖的第三方库未适配targetSdk31,它们的组件(Activity、Service、Receiver、Provider)缺少android:exported属性,合并到主工程Manifest后触发解析错误。你可以查看合并后的最终Manifest文件来定位问题:路径一般是app/build/intermediates/merged_manifests/[build类型]/AndroidManifest.xml,这里的行号(比如你看到的271行)指的是这个合并后的文件,而非你本地编写的Manifest。
  • 验证android:exported属性的正确性:不能只单纯添加属性,还要确保值符合规则——如果组件带有<intent-filter>(比如启动页Activity、ACTION_VIEW的Activity等),android:exported必须设为true;如果没有<intent-filter>,可根据需求设为false,错误的取值会直接导致解析失败。
  • 排查Manifest语法错误:标签未闭合、属性值引号不匹配、特殊字符未转义这类隐性语法问题,本地编辑器可能不会提示,但会触发安装解析错误。可以用Android Studio的验证功能:右键Manifest文件 → 选择Validate Manifest来自动检测。
  • 升级Gradle及插件版本:你当前使用的Gradle 6.1.1和插件4.0.1对targetSdk31的支持不完善,建议升级到适配的版本组合,比如Gradle 7.0.2搭配插件7.0.3,旧版本在处理targetSdk31的Manifest强制规则时存在兼容性bug。
  • 检查所有类型的组件:除了Activity,不要忽略ContentProvider、Service、BroadcastReceiver这些组件,它们同样需要添加android:exported属性,哪怕是你自己定义的内部组件。
  • 查看完整的logcat堆栈:不要只看安装失败的提示,找到包含INSTALL_PARSE_FAILED_MANIFEST_MALFORMED的完整报错信息,里面通常会明确指出具体是哪个组件违反了规则,比如Component class xxx has no declared android:exported attribute,这能帮你快速定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:45:53