You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

集成PayMob SDK启动PayActivity时触发Resources$NotFoundException崩溃

崩溃根因

该崩溃由PayMob SDK的兜底资源引用逻辑缺陷引发:
SDK内置PayActivity在onCreate生命周期中会读取启动Intent的theme_color参数作为主题色,当该参数未传入时,会执行兜底逻辑读取colorPrimaryDark颜色资源。但这里SDK直接引用了自身编译时生成的R类资源ID,和宿主App合并资源后的实际资源ID映射不匹配,或是宿主App未定义colorPrimaryDark颜色项时,就会抛出资源找不到的异常直接崩溃。

崩溃日志里的核心报错对应SDK内的问题代码:
this.themeColor = intent.getIntExtra("theme_color", this.getApplicationContext().getResources().getColor(color.colorPrimaryDark));

修复方案
  • 启动PayActivity时主动传入theme_color参数,彻底绕开SDK存在缺陷的兜底逻辑,参考实现:
Intent payIntent = new Intent(currentActivity, PayActivity.class);
// 传入你项目自身的主题深色值即可
payIntent.putExtra("theme_color", ContextCompat.getColor(currentActivity, R.color.colorPrimaryDark));
// 按PayMob文档要求传入其余支付必填参数后启动页面
startActivity(payIntent);
  • 检查项目res/values/colors.xml配置,确保存在名为colorPrimaryDark的颜色定义,不要随意移除Android主题要求的默认颜色项。
  • 如果构建时开启了资源压缩、资源混淆,将PayMob SDK的相关资源加入白名单,避免构建过程中误删SDK依赖资源、打乱资源ID映射关系。

内容的提问来源于stack exchange,提问作者Shady Mohamed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 15:18:19