Expo Go集成Stripe报错Native module cannot be null问题咨询
问题根因
Expo SDK 40版本不支持在Expo Go客户端中直接运行@stripe/stripe-react-native依赖,官方对该SDK的Expo Go兼容支持从Expo SDK 43及以上版本才正式推出。低版本下直接安装引入后会缺少对应的原生模块绑定,所以会抛出Native module cannot be null的典型原生模块缺失报错。
可行解决方案
- 方案1:升级Expo SDK版本(推荐)
将项目的Expo SDK升级到43或更高的长期支持版本,升级完成后重新执行expo install @stripe/stripe-react-native安装对应适配版本,即可直接在Expo Go中正常调用Stripe支付能力,无需额外配置原生开发环境。 - 方案2:保留SDK 40版本的适配操作
若暂不具备升级条件,可按以下步骤处理:- 安装适配SDK 40的指定版本Stripe依赖:
npm install @stripe/stripe-react-native@0.1.4 - 放弃使用Expo Go运行项目,自行构建自定义开发客户端:执行
expo run:ios或expo run:android生成集成了Stripe原生模块的专属运行包,再基于该包进行开发调试即可。
- 安装适配SDK 40的指定版本Stripe依赖:
额外注意事项
- 引入
StripeProvider组件时需要确保传入了正确的Stripe publishableKey参数,参数缺失也会导致运行时崩溃 - 若使用EAS服务构建正式包,需要在eas.json配置中确认已包含Stripe相关的插件配置,避免构建后出现模块缺失问题
内容的提问来源于stack exchange,提问作者MK_Pierce
相关产品推荐
相关产品推荐

