Google Play发布概览持续提示广播接收器注册违规求助
排查Google Play广播接收器注册违规问题的建议
确认生产包的合并清单
执行Gradle命令导出release版本的合并清单:./gradlew app:mergeReleaseManifest打开生成的
build/intermediates/merged_manifests/release/AndroidManifest.xml,搜索所有<receiver>标签,检查是否存在未设置android:exported属性的接收器——除了LeakCanary的debug接收器,还要留意第三方SDK引入的接收器。排查第三方库的动态注册
你自身的代码已经用ContextCompat.registerReceiver并指定RECEIVER_NOT_EXPORTED,但部分第三方SDK(如广告、统计、推送类)可能仍在使用旧版动态注册逻辑,未指定exported标记。可以通过以下方式排查:- 在App启动阶段添加日志监控,或者用调试断点跟踪所有
registerReceiver的调用栈,确认是否有非自身代码的注册行为。 - 检查依赖树,找出可能涉及广播接收器的第三方库,查看其官方文档是否有针对API 34的适配说明。
- 在App启动阶段添加日志监控,或者用调试断点跟踪所有
验证LeakCanary是否真的未进入生产包
确认build.gradle中LeakCanary的依赖是debugImplementation而非implementation:debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.12'用Android Studio的APK Analyzer打开release APK,检查:
- 是否存在
leakcanary.internal.NotificationReceiver类 - 清单文件中是否包含该接收器的注册项
- 是否存在
排除Google Play检测延迟或缓存
若你刚提交新版本,Google Play的检测结果可能存在延迟,等待2-4小时后再查看发布概览。同时确认是否是旧版本的错误报告未被清除,检查报告对应的版本号是否为你提交的最新版本。
内容的提问来源于stack exchange,提问作者z.g.y
相关产品推荐
相关产品推荐

