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

Expo项目集成react-native-vision-camera报CameraView原生模块为空求助

解决Expo环境下react-native-vision-camera "Native Module 'CameraView' was null"问题

排查与修复步骤:

  1. 匹配版本兼容性
    Expo SDK46对应React Native 0.69.x,而react-native-vision-camera 2.15.1对该RN版本兼容性不佳。建议降级到适配SDK46的版本(如2.13.0,明确支持RN0.69):

    expo install react-native-vision-camera@2.13.0
    

    执行后重新运行expo prebuild和iOS目录下的pod install。

  2. 验证原生代码生成情况

    • 检查iOS项目的Pods/Manifest.lock,确认存在react-native-vision-camera条目且版本匹配;
    • 查看Android项目settings.gradle,确认包含以下配置:
      include ':react-native-vision-camera'
      project(':react-native-vision-camera').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vision-camera/android')
      
    • 若iOSPodfile未自动添加依赖,手动补充后重新执行pod install:
      pod 'react-native-vision-camera', :path => '../node_modules/react-native-vision-camera'
      
  3. 清理缓存后重建项目

    • 清除Expo缓存:
      expo r -c
      
    • 清除iOS缓存并重新安装依赖:
      cd ios && rm -rf Pods Podfile.lock && pod install && cd ..
      
    • 清除Android缓存:
      cd android && ./gradlew clean && cd ..
      

    完成后重新启动项目。

  4. 确认权限配置生效
    检查iOS项目Info.plist,确认已自动添加相机、麦克风权限描述(若未添加则手动补充):

    <key>NSCameraUsageDescription</key>
    <string>$(PRODUCT_NAME) needs access to your Camera.</string>
    <key>NSMicrophoneUsageDescription</key>
    <string>$(PRODUCT_NAME) needs access to your Microphone.</string>
    

    同时确认Android项目AndroidManifest.xml包含对应权限:

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    
  5. 使用Expo Dev Client而非Expo Go
    react-native-vision-camera属于原生模块,无法在Expo Go中运行,必须通过expo run:ios或expo run:android启动Expo Dev Client进行测试。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:45:35