DevEco Studio鸿蒙模拟器(6.0.1)在uni-app中选择相机报错"chooseImage:fail Cannot read property resultCode of undefined"
DevEco Studio鸿蒙模拟器(6.0.1)在uni-app中选择相机报错"chooseImage:fail Cannot read property resultCode of undefined"
问题描述
DevEco Studio鸿蒙模拟器(6.0.1),选择相机报错 {errMsg: "chooseImage:fail Cannot read property resultCode of undefined"}
uni.chooseImage({
count: 9, // 最多选择9张图片
sizeType: ['original','compressed'], // 支持原图和压缩图
sourceType: ['album', 'camera'], // 支持从相册选择或使用相机拍照
success: async (res) => {
...
},
fail: err => {
err.errMsg.includes('cancel') ? console.log('用户取消了操作') : console.error('选择图片失败:', err);
// 选择相机进到了这里,输出:
// {errMsg: "chooseImage:fail Cannot read property resultCode of undefined"}
},
complete: function () {
console.log('操作完成,关闭遮罩层');
}
});
看资料说是不用另外再申请权限的,目前打开相册是正常的,就是相机无法唤醒。
图片

更多关于DevEco Studio鸿蒙模拟器(6.0.1)在uni-app中选择相机报错"chooseImage:fail Cannot read property resultCode of undefined"的实战教程也可以访问 https://www.itying.com/category-93-b0.html
实测模拟器异常,真机功能正常,模拟器应该是无法模拟摄像头,这个报错符合预期,但内容可以优化错误提示
更多关于DevEco Studio鸿蒙模拟器(6.0.1)在uni-app中选择相机报错"chooseImage:fail Cannot read property resultCode of undefined"的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
这个问题是由于鸿蒙模拟器(HarmonyOS)环境下,uni-app的uni.chooseImage API在调用相机时,未能正确处理返回结果导致的。错误信息Cannot read property resultCode of undefined表明,API期望从某个对象中读取resultCode属性,但该对象为undefined。
原因分析:
- 模拟器兼容性问题:鸿蒙模拟器(特别是6.0.1版本)可能对uni-app的相机调用支持不完善。虽然相册功能正常,但相机模块在模拟器中可能存在兼容性差异。
- 权限或配置缺失:尽管文档提示无需额外申请权限,但模拟器的相机功能可能需要特定的配置或模拟器镜像支持(例如:是否启用了相机硬件模拟)。
- API回调异常:在调用系统相机时,鸿蒙系统可能未按预期返回结果对象,导致
resultCode读取失败。
解决方案:
-
检查模拟器设置:
- 确认鸿蒙模拟器镜像是否支持相机功能。在DevEco Studio的模拟器管理中,选择带有相机功能的镜像(如P40 Pro等设备镜像),并确保模拟器已启用相机权限(可在模拟器设置中查看)。
- 尝试重启模拟器或更换其他鸿蒙版本镜像测试。
-
降级或调整API调用:
- 暂时避免在模拟器中使用
sourceType: ['camera']。可先仅使用相册功能(sourceType: ['album'])进行开发调试。 - 如果必须测试相机,建议使用真机调试。鸿蒙真机通常能正常调用相机。
- 暂时避免在模拟器中使用
-
捕获异常并降级处理:
- 在
fail回调中增加更详细的错误处理,避免应用崩溃。例如:fail: err => { if (err.errMsg.includes('resultCode')) { console.warn('鸿蒙模拟器相机兼容性问题,建议使用真机测试'); } // 其他处理 }
- 在


