集成react-native-google-mobile-ads应使用哪个Expo版本?已遇v48报错
关于react-native-google-mobile-ads的Expo版本选择及错误解决
推荐的Expo版本
优先选择Expo v49及以上版本,react-native-google-mobile-ads在v49+的适配更完善,能减少原生模块兼容性问题。如果必须使用Expo v48,需搭配react-native-google-mobile-ads的12.x系列版本(如12.8.0),该版本对v48有官方兼容支持。
解决"Invariant Violation: requireNativeComponent: 'RNGoogleMobileAdsBannerView' was not found in the UIManager"错误
你遇到的这个错误通常是原生模块未正确链接或配置有误导致的,按以下步骤排查:
- 修正app.json配置位置:你当前把
react-native-google-mobile-ads配置放在了expo对象外部,这是错误的,正确配置应该嵌套在expo对象内:
{ "expo": { // 其他Expo配置项 "react-native-google-mobile-ads": { "android_app_id": "ca-app-pub-xxxxxxxx~xxxxxxxx" } } }
- 使用开发构建而非Expo Go:react-native-google-mobile-ads是原生模块,Expo Go不支持这类自定义原生模块,必须创建自定义开发构建(使用
expo-dev-client),运行npx expo install expo-dev-client后,重新生成原生项目文件。 - 重新生成原生文件:如果是bare workflow或使用开发构建,运行
npx expo prebuild来同步配置到原生项目,之后重新启动项目。 - 清除缓存:执行
npx expo start --clear清除Expo缓存,同时清理Android的Gradle缓存或iOS的Pod缓存后重新构建。
内容的提问来源于stack exchange,提问作者Devendra
相关产品推荐
相关产品推荐

