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

Android 12安装应用报INSTALL_PARSE_FAILED_MANIFEST_MALFORMED问题求解

问题1:INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 安装报错解决

Android 12(API 31)要求所有带<intent-filter>标签的四大组件(Activity、Service、BroadcastReceiver、ContentProvider)必须显式声明android:exported属性,不需要全部设为true,按组件实际暴露场景设置即可:

  • 对外暴露的组件(比如桌面入口Activity、接收系统广播的Receiver、供其他应用调用的Service)设置android:exported="true"
  • 仅应用内部使用的组件设置android:exported="false"
    如果报错是第三方SDK的组件未声明该属性,可以在你项目的AndroidManifest.xml中重写对应组件,显式加上android:exported属性覆盖第三方配置即可。

额外建议:当前buildToolsVersion = "28.0.2"和compileSdkVersion=31版本不匹配,建议升级buildToolsVersion到31.0.0及以上,减少编译阶段的兼容问题。

问题2:启动崩溃 PendingIntent FLAG 配置报错解决

Android 12要求创建PendingIntent时必须显式指定FLAG_IMMUTABLE(不可修改)或者FLAG_MUTABLE(可修改),不能使用未包含这两个标记的旧写法,分两种场景处理:

自有代码中的PendingIntent修改

优先使用官方推荐的FLAG_IMMUTABLE,仅当你需要配合内联回复、气泡等功能修改PendingIntent内容时才用FLAG_MUTABLE,兼容写法示例:

int flag;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
    // 拼接原有标记和Android12要求的标记
    flag = PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT;
} else {
    flag = PendingIntent.FLAG_UPDATE_CURRENT;
}
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, requestCode, intent, flag);

第三方依赖导致的报错处理

你的崩溃日志显示报错来自androidx.work库,说明你使用的WorkManager版本过低未适配Android12,直接升级依赖到2.7.0及以上版本即可:

dependencies {
    // 升级到2.7.1或更高稳定版即可
    implementation "androidx.work:work-runtime:2.7.1"
}

如果有其他第三方库触发同类报错,优先升级对应依赖到适配Android12的版本即可。

验证效果

以上两个问题处理完成后,保持targetSdkVersion=31即可正常安装应用,同时可以正常使用Android12专属的android:windowSplashScreenBackground等闪屏相关配置参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:15:04