Android 12及以上版本无法安装应用,添加android:exported仍未解决
Android 12+上传APK/App Bundle报错排查方案
- 别漏了所有带Intent Filter的组件:除了你已经检查的Activity和Service,Broadcast Receiver和Activity Alias只要有
<intent-filter>标签,就必须显式添加android:exported属性,很多人容易忽略这两类组件。 - 排查第三方库的Manifest:你依赖的第三方SDK可能在自身Manifest中声明了带Intent Filter的组件,但未设置
android:exported。可以通过以下方式查看合并后的完整Manifest:- 在Android Studio中选择
Build > Analyze APK,打开打包后的APK/App Bundle查看AndroidManifest.xml; - 查看项目
build/outputs/logs目录下的manifest-merger-xxx-report.txt,搜索未设置exported的组件。
- 在Android Studio中选择
- 确认属性值匹配组件用途:不是所有组件都要设为
true——如果组件需要被外部应用调用,设为true;仅内部使用则设为false,核心是必须显式声明,不能省略该属性。 - 检查targetSdkVersion:确保项目的
targetSdkVersion为31(Android 12)或更高,因为这个强制要求从Android 12开始生效,版本过低即使添加了属性也可能触发审核报错。 - 清理缓存后重新构建:缓存可能导致Manifest合并异常,先执行
Build > Clean Project,再选择Build > Rebuild Project,重新打包后尝试上传。
提示:如果Google Play的错误提示给出了具体组件名称,直接定位该组件修改效率更高。
内容的提问来源于stack exchange,提问作者Sarath Dixit
相关产品推荐
相关产品推荐

