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

Flutter:availableCameras()返回空列表问题求助

解决availableCameras()返回空列表的排查方案

以下是针对你遇到的问题的具体排查和解决步骤:

  • 确认系统权限的持久授权
    即使你已允许权限,部分安卓厂商的隐私机制会在应用后台后收回临时授权。进入系统设置→应用管理→你的APP→权限管理,将摄像头权限设置为**“始终允许”**,而非“仅使用时允许”,避免应用重启后权限被重置。

  • 排查摄像头被其他应用占用
    检查手机后台是否有其他占用摄像头的应用(如原生相机、微信视频通话、录屏工具等),强制关闭所有后台应用后,重新冷启动你的APP测试。

  • 清理Flutter依赖缓存并重装

    1. 删除项目根目录的pubspec.lock文件
    2. 执行终端命令:flutter clean
    3. 重新拉取依赖:flutter pub get
    4. 卸载设备上的APP后,执行flutter install重新安装(不要使用热重启,必须冷启动)
  • 检查Android权限配置完整性
    打开android/app/src/main/AndroidManifest.xml,确认已添加以下权限和特性声明:

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.front" />
    

    部分机型需要明确声明前置摄像头特性,否则系统不会返回对应设备信息。

  • iOS设备需检查权限描述(若适用)
    如果你使用的是iOS真机,打开ios/Runner/Info.plist,确认已添加摄像头权限描述:

    <key>NSCameraUsageDescription</key>
    <string>需要访问摄像头进行拍摄操作</string>
    

    iOS 14及以上系统要求必须添加权限描述,否则即使系统显示权限允许,应用也无法正常访问摄像头。

  • 重启设备恢复硬件服务
    部分系统更新或临时硬件服务异常会导致摄像头无法被检测到,直接重启设备后再测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:01:06