我正在使用 expo-image-picker 来允许用户选择并拍照。从库中选择图像可以按预期工作,但是在使用相机时,拍照后应用程序崩溃。
这是我的代码:
const take = async () => {
let result = await ImagePicker.launchCameraAsync({
mediaTypes: ImagePicker.MediaTypeOptions.Images,
quality: 1,
});
console.log(result.uri);
if (!result.cancelled) {
setImageUri(result.uri);
}
};
我认为我拥有所有必需的权限,并且问题似乎只发生在内存有限的旧版 Android 设备上。有任何想法吗?
没有好的、简单的解决方案。
发生的情况是,当您启动相机时,它会作为新相机启动Activity
,离开您的应用程序mainActivity
在背景中。
从 Android P (9) 及更高版本开始,操作系统可以终止您的后台活动。甚至有一个网站的实施对于开发人员来说更糟糕:https://dontkillmyapp.com/
可能的解决方案:
- 做好崩溃的准备。将所有状态和导航堆栈保存在本地存储、launchCamera 上。应用程序将重新启动,您将恢复所有屏幕/导航/数据/等,并使用ImagePicker.getPendingResultAsync.
- 将库更改为世博相机 or 反应本机视觉相机当他们使用相机时
mainActivity
但需要无聊的重新实现,而且看起来不如制造商的本机相机好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)