错误: 调用函数 'ExponentImagePicker.launchCameraAsync' 被拒绝
错误: 调用函数 'ExponentImagePicker.launchCameraAsync' 被拒绝
我试图使用"expo-image-picker"模块的"launchCameraAsync"函数让用户拍照,起初一切顺利,但现在当试图让用户拍照时,expo会抛出一个警告并且不激活相机,警告信息如下:
可能未处理的Promise拒绝(id:0):
错误:调用函数'ExponentImagePicker.launchCameraAsync'被拒绝。
→ 由于:java.lang.RuntimeException:无法在未调用Looper.prepare()的线程Thread[DefaultDispatcher-worker-2,5,main]中创建处理程序。
造成这个错误的代码部分是:
const permission = await ImagePicker.requestCameraPermissionsAsync(); if (permission.granted === false) //错误处理 console.log(permission); let result = await ImagePicker.launchCameraAsync({ base64: false, mediaTypes: ImagePicker.MediaTypeOptions.Images, allowsEditing: true, aspect: [3, 2], quality: 1, }); console.log(result); if (!result.cancelled) { console.log(result.uri); setImages({ ...images, document: result.uri }); }
我认为这个错误可能是与其他expo模块不兼容造成的,但我不确定,因为我没有在我的应用中更新或更改模块,不管怎样,这里是我认为相关模块的版本。
"expo": "~46.0.16", "expo-image-picker": "~13.3.1", "expo-updates": "~0.14.6",