Expo集成react-native-permissions报错RNPermissionsModule未找到求助
RNPermissionsModule 找不到错误的分析与解决
错误含义
这个错误表示JavaScript代码尝试调用原生模块RNPermissionsModule,但你的应用原生二进制包中并未注册该模块——本质是react-native-permissions的原生代码没有正确集成到你的Expo项目里。
解决步骤
结合你使用Expo Dev Client、已尝试过的操作,按以下步骤排查:
- 恢复兼容版本的react-native-permissions
你降级到2.0.3版本过于老旧,和当前使用的React Native 0.71.8(Expo 48)不兼容,会导致原生模块注册失败。请执行:
yarn remove react-native-permissions yarn add react-native-permissions@3.8.4
- 彻底清理并重新预构建原生代码
Expo Dev Client模式下,原生模块的集成依赖预构建步骤,之前的预构建可能残留了错误配置:
- 备份项目中的
ios和android文件夹后删除它们 - 清理缓存:
yarn cache clean expo r -c - 重新生成原生代码:
expo prebuild --clean - 重新编译运行:
expo run:ios
- 确认Podfile自动配置
检查生成的ios/Podfile,确认是否包含以下自动生成的配置(Expo prebuild应该自动添加):
pod 'RNPermissions', :path => '../node_modules/react-native-permissions'
如果没有,手动添加后执行cd ios && pod install,再回到根目录重新运行expo run:ios
- 避免权限模块冲突
你的项目中同时使用了Expo官方的权限相关库(如expo-location、expo-camera)和react-native-permissions,两者可以共存,但确保不要重复配置原生权限项,所有权限声明统一在app.json的ios.infoPlist和android.permissions中配置即可。
内容的提问来源于stack exchange,提问作者MxG
相关产品推荐
相关产品推荐

