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

如何解决Expo集成React Native Google Mobile Ads的RNGoogleMobileAdsBannerView缺失错误?

解决 "Invariant Violation: requireNativeComponent: 'RNGoogleMobileAdsBannerView' was not found in the UIManager" 错误

针对你在Expo环境下遇到的这个问题,可以尝试以下排查和修复步骤:

  • 必须使用自定义开发构建,而非Expo Go
    react-native-google-mobile-ads属于原生模块,无法在Expo Go中运行,你已经安装了expo-dev-client,需要重新生成开发构建:

    npx expo prebuild --clean
    npx expo run:ios  # iOS平台执行
    # 或
    npx expo run:android  # Android平台执行
    
  • 核对版本兼容性
    Expo 48与react-native-google-mobile-ads@11.0.0可能存在版本适配问题,建议确认官方兼容关系后调整版本。比如尝试降级到适配Expo 48的稳定版本,重新安装:

    npm uninstall react-native-google-mobile-ads
    npm install react-native-google-mobile-ads@10.1.1
    npx expo prebuild --clean
    
  • 验证原生端配置完整性

    • iOS:进入ios目录,执行pod install --repo-update确保所有依赖安装完成,检查Podfile中是否正确引入了Google Mobile Ads相关配置。
    • Android:检查android/build.gradle是否添加了Google Maven仓库,android/app/build.gradle中是否配置了广告ID和正确的依赖声明。
  • 彻底清除缓存
    缓存残留可能导致模块未正确加载,执行以下命令清理:

    npx expo start --clear
    rm -rf node_modules && npm install
    # iOS额外清理步骤
    cd ios && rm -rf Pods Podfile.lock && pod install
    # Android额外清理步骤
    cd android && ./gradlew clean
    
  • 检查组件导入与使用
    确认组件导入和使用没有拼写错误:

    import { BannerAd, BannerAdSize } from 'react-native-google-mobile-ads';
    
    // 正确使用示例
    <BannerAd
      unitId="你的广告单元ID"
      size={BannerAdSize.BANNER}
    />
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 06:33:09