Android 12及以上应用无法安装,请求排查Manifest配置问题
Android 12及以上版本安装失败:未设置
android:exported属性的组件排查 1. 直接修复Manifest中的遗漏组件
你的Manifest里的com.google.android.gms.ads.AdActivity未添加android:exported属性,这是导致报错的直接原因之一。Android 12+要求所有**带有intent-filter的组件(Activity、Service、Receiver)**必须显式声明该属性——即使你自己没写intent-filter,该Activity在Google Ads库的Manifest中可能带有默认的intent-filter,合并后仍需显式设置。
修改后的代码:
<activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent" android:exported="false" />
2. 检查合并后的Manifest文件
仅检查手写的Manifest不够,第三方依赖库的组件可能在Manifest合并后引入带有intent-filter但未设置android:exported的组件。你可以通过Android Studio的Merged Manifest功能查看最终生效的Manifest:
- 打开你的
AndroidManifest.xml文件 - 点击底部的
Merged Manifest标签 - 搜索所有包含
<intent-filter>的组件,逐一确认每个组件都已设置android:exported属性
3. 确认组件属性格式正确性
检查所有组件的android:exported属性是否正确放置在标签内,比如你Manifest中的BootCompleteListener属性缩进不规范,调整为标准格式(不影响功能但避免潜在解析问题):
<receiver android:name="com.startapp.sdk.adsbase.remoteconfig.BootCompleteListener" android:exported="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver>
完成以上修改后,重新构建APK/App Bundle并上传到Google Play即可解决问题。
内容的提问来源于stack exchange,提问作者Hritik Yadav
相关产品推荐
相关产品推荐

