上传Android App Bundle遇未设置android:exported属性,添加后仍无效求助
解决Google Play上传AAB时的android:exported属性错误(Android 12+)
核心排查方向:覆盖所有带的组件
Google Play的错误提示明确要求所有带有
1. 查看合并后的最终Manifest文件
Android Studio会合并你自己的Manifest和所有依赖库的Manifest,很多时候问题出在第三方库的组件上:
- 打开你的
AndroidManifest.xml文件 - 切换到底部的Merged Manifest标签
- 搜索所有包含
<intent-filter>的组件,逐一检查是否都设置了android:exported属性
2. 处理第三方库的未合规组件
如果发现是依赖库中的组件缺少android:exported,有两种解决方式:
- 优先升级库版本:找到对应库的最新版本,通常新版本会适配Android 12+的要求,添加了
android:exported属性 - 手动覆盖声明:如果暂时无法升级,在你自己的
AndroidManifest.xml中重新声明该组件,补充android:exported属性。例如:<!-- 假设第三方库的Service缺少exported属性 --> <service android:name="com.thirdparty.library.SomeService" android:exported="false"> <!-- 根据组件用途设置true/false:对外暴露设true,仅内部使用设false --> <!-- 复制原库中的intent-filter内容 --> <intent-filter> <action android:name="com.thirdparty.library.ACTION_EXAMPLE"/> </intent-filter> </service>
3. 确认编译配置符合要求
检查你的模块build.gradle(或build.gradle.kts)文件:
- 确保
compileSdkVersion和targetSdkVersion至少设置为31(Android 12对应的API级别) - 示例配置:
android { compileSdk 34 defaultConfig { targetSdk 34 // 其他配置... } }
4. 清理重建项目后重新生成AAB
缓存可能导致Manifest合并不生效,执行以下步骤:
- 点击Android Studio顶部菜单栏的Build > Clean Project
- 然后执行Build > Rebuild Project
- 重新生成App Bundle(Build > Generate Signed Bundle/APK)后再上传到Google Play
内容的提问来源于stack exchange,提问作者Megastrik3
相关产品推荐
相关产品推荐

