Flutter项目适配Android 14遇flutter_inapp_purchase接收器注册报错求助
解决Flutter flutter_inapp_purchase初始化Android 14广播接收器错误
问题原因
Android 14(API 34)新增安全强制要求:动态注册非系统专属广播接收器时,必须显式指定RECEIVER_EXPORTED或RECEIVER_NOT_EXPORTED标记。你的项目中flutter_inapp_purchase插件依赖的Google Billing Client版本(5.1.0)未适配该规则,导致初始化时触发SecurityException。
解决方案
1. 升级flutter_inapp_purchase到最新适配版本
更新pubspec.yaml中的插件版本至最新稳定版:
flutter_inapp_purchase: ^最新版本号
执行flutter pub get拉取新版本后,重新编译项目即可。
2. 强制升级Google Billing Client版本
若插件最新版仍未适配,直接在Android项目中强制升级Billing Client依赖:
打开android/build.gradle,在allprojects块中添加版本强制规则:
allprojects { repositories { // 保留原有仓库配置 } configurations.all { resolutionStrategy.force 'com.android.billingclient:billing:6.0.0' } }
6.0.0及以上版本的Billing Client已完全适配Android 14的广播接收器标记要求。
3. 临时修改插件源码(不推荐)
若以上方案均无法生效,可临时修改插件的Android代码:
找到插件的AndroidInappPurchasePlugin.kt文件,定位到startConnection方法调用处或广播接收器注册逻辑,添加对应的标记参数。但此方法会在插件更新时被覆盖,仅作为紧急临时方案。
验证步骤
- 执行
flutter clean清理项目缓存 - 重新运行
flutter run启动项目
内容的提问来源于stack exchange,提问作者SalmanNaghori
相关产品推荐
相关产品推荐

