目标SDK为S+(31+)时安装失败报INSTALL_PARSE_FAILED_MANIFEST_MALFORMED错误求助
解决INSTALL_PARSE_FAILED_MANIFEST_MALFORMED(com.onesignal.GcmBroadcastReceiver)错误
问题原因
当应用目标SDK版本为Android 12(API 31)及以上时,所有包含intent-filter的组件(BroadcastReceiver、Activity、Service等)必须显式声明android:exported属性(值为true或false)。本次报错的com.onesignal.GcmBroadcastReceiver广播接收器带有intent-filter但未设置该属性,导致安装包解析失败。
解决方案
- 打开项目的
AndroidManifest.xml文件,找到com.onesignal.GcmBroadcastReceiver的声明节点 - 添加
android:exported属性,根据该接收器的用途(需接收系统推送广播),设置为true:
<receiver android:name="com.onesignal.GcmBroadcastReceiver" android:exported="true"> <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> </intent-filter> </receiver>
- (可选)若使用的OneSignal SDK版本较旧,建议升级至最新稳定版——新版本已适配Android 12+的要求,默认会包含
android:exported属性,无需手动修改。
额外检查
遍历Manifest中所有带有intent-filter的组件,确保都已设置android:exported:
- 若组件需要被外部应用/系统调用,设为
true - 若仅应用内部使用,设为
false
内容的提问来源于stack exchange,提问作者Mian Labib Ijaz
相关产品推荐
相关产品推荐

