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

React Native Expo项目中使用expo-camera的CameraView时摄像头无法启动求助

解决Expo Camera摄像头无法启动的问题

针对你遇到的摄像头权限已授予但摄像头无法启动的问题,可按以下步骤排查:

1. 确认权限配置是否完整

Expo项目需要在配置文件中声明摄像头权限,即使弹窗请求了权限,缺少配置可能导致摄像头无法正常启动:

  • 在app.json或app.config.js中添加:
    {
      "expo": {
        "ios": {
          "infoPlist": {
            "NSCameraUsageDescription": "需要访问摄像头以扫描二维码"
          }
        },
        "android": {
          "permissions": ["CAMERA"]
        }
      }
    }
    

2. 排除样式问题干扰

尝试替换twrnc样式为原生React Native样式,确认是否是tailwind配置导致CameraView未正确渲染:
修改CameraView的style为:

<CameraView style={{ flex: 1 }} facing={facing}>

3. 验证SDK与expo-camera版本兼容性

expo-camera版本需与Expo SDK版本严格匹配,例如:

  • Expo SDK 49 对应 expo-camera@14.x
  • Expo SDK 50 对应 expo-camera@15.x
    查看package.json中的版本,若不匹配,执行对应版本安装:
# 示例:SDK 50安装对应版本
npm install expo-camera@15.0.0

4. 确认权限状态是否真的被授予

在组件中添加日志,验证权限状态是否为granted:

useEffect(() => {
  console.log('Permission status:', permission?.status);
}, [permission]);

若日志显示权限未真正授予,可手动前往系统设置开启应用的摄像头权限。

5. 清除Expo缓存或使用自定义开发客户端

  • 若使用Expo Go,尝试卸载重装Expo Go或在系统设置中清除其缓存
  • 若问题持续,创建自定义开发客户端测试,规避Expo Go的缓存或功能限制问题

6. 检查设备摄像头状态

确认设备摄像头未被其他应用占用,重启设备后再次测试。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 22:40:13