Flutter:availableCameras()返回空列表问题求助
解决availableCameras()返回空列表的排查方案
以下是针对你遇到的问题的具体排查和解决步骤:
确认系统权限的持久授权
即使你已允许权限,部分安卓厂商的隐私机制会在应用后台后收回临时授权。进入系统设置→应用管理→你的APP→权限管理,将摄像头权限设置为**“始终允许”**,而非“仅使用时允许”,避免应用重启后权限被重置。排查摄像头被其他应用占用
检查手机后台是否有其他占用摄像头的应用(如原生相机、微信视频通话、录屏工具等),强制关闭所有后台应用后,重新冷启动你的APP测试。清理Flutter依赖缓存并重装
- 删除项目根目录的
pubspec.lock文件 - 执行终端命令:
flutter clean - 重新拉取依赖:
flutter pub get - 卸载设备上的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
相关产品推荐
相关产品推荐

