Android 9设备集成Google Pay API遇SecurityException报错求助
问题分析与解决方案
结论
这确实是Google Play Services 23.x版本在Android 9设备上的兼容性bug,具体是包名验证逻辑出现异常,导致抛出java.lang.SecurityException: Unknown calling package name 'com.google.android.gms'错误。
解决办法
临时兼容方案:锁定Google Play Services版本
引导用户安装Google Play Services 22.x系列的稳定版本(如22.45.14),该版本既不会触发崩溃,也能满足Google Pay API的最低版本要求,不会弹出强制更新提示。注意需通过官方可信渠道获取安装包,避免安全风险。代码层面增加版本容错逻辑
在初始化Google Pay API前,增加版本检查逻辑,针对Android 9 + Google Play Services 23.x的组合进行特殊处理:val gmsVersion = GoogleApiAvailability.getInstance().getApkVersion(context) val isAndroid9 = Build.VERSION.SDK_INT == Build.VERSION_CODES.P if (isAndroid9 && gmsVersion >= 230000000) { // 显示降级提示或临时禁用Google Pay功能 showGmsDowngradeTip() } else { // 正常初始化Google Pay服务 setupGooglePay() }向Google提交问题反馈
通过Google Play开发者控制台或Google Pay官方支持渠道,提交该兼容性问题,提供以下关键信息:设备型号(Galaxy Note8)、系统版本(Android 9)、Google Play Services版本(23.48.16)、完整崩溃日志,推动官方修复该包名验证bug。复查集成配置合规性
再次确认AndroidManifest.xml中Google Pay相关配置:- 已添加
<meta-data android:name="com.google.android.gms.wallet.api.enabled" android:value="true"/> - 应用包名与Google Pay控制台注册的包名完全一致
- 签名证书指纹已正确配置到Google Pay后台
- 已添加
内容的提问来源于stack exchange,提问作者Dinq
相关产品推荐
相关产品推荐

