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

React Native集成Stripe遇NativeEventEmitter及StripeProvider错误求助

解决React Native集成Stripe时的两个核心错误

针对你遇到的Invariant Violation: new NativeEventEmitter() requires a non-null argument., js engine: hermes和TypeError: Cannot read property 'StripeProvider' of undefined错误,按以下步骤排查修复:

1. 彻底重装依赖并清理缓存

这是解决模块未正确加载最常见的手段:

# 卸载Stripe包
npm uninstall @stripe/stripe-react-native
# 删除依赖文件和锁文件
rm -rf node_modules package-lock.json yarn.lock
# 重新安装依赖
npm install @stripe/stripe-react-native
# 重置Metro缓存并重启服务
npx react-native start --reset-cache

2. 确认原生端依赖正常链接

React Native 0.60+虽支持自动链接,但偶尔会出现链接失败:

  • iOS端:进入项目的ios目录,执行pod install,完成后重新编译Xcode项目;
  • Android端:进入android目录,执行./gradlew clean清理编译缓存,再重新构建项目。

3. 检查版本兼容性

确保@stripe/stripe-react-native版本与你的React Native版本匹配。部分旧版RN可能不兼容最新的Stripe包,反之亦然。建议查看Stripe官方文档的版本兼容说明,调整包版本后重复步骤1。

4. 验证原生端配置完整性

Stripe的原生端需要基础配置才能正常工作:

  • iOS:在Info.plist中确认已添加merchantIdentifier对应的配置项,同时确保ATS设置允许Stripe的域名访问;
  • Android:在AndroidManifest.xml中检查是否添加了网络权限,以及是否在MainApplication中正确初始化了Stripe相关模块。

5. 尝试调整导入方式

少数情况下包导出可能存在异常,可尝试默认导入替代命名导入:

import StripeProvider from '@stripe/stripe-react-native';

使用时保持原有组件写法不变。

6. 排查Hermes引擎兼容性

如果上述步骤无效,可临时禁用Hermes引擎测试:

  • iOS:在Xcode的Build Settings中搜索Enable Hermes,设置为NO;
  • Android:在android/app/build.gradle中修改enableHermes: false,重新编译项目。若禁用后错误消失,说明当前Stripe版本与Hermes存在兼容性问题,需升级Stripe包或RN版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 18:03:12