繁体   English   中英

在 Android 上使用 launchCameraAsync() 后,Expo-image-picker 使应用程序崩溃

[英]Expo-image-picker crashes app after using launchCameraAsync() on Android

我正在使用 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/


可能的解决方案:

  1. 准备崩溃。 将所有状态和导航堆栈保存在本地存储、launchCamera 上。 该应用程序将重新启动,您将恢复所有屏幕/导航/数据/等,并使用ImagePicker.getPendingResultAsync获取照片。
  2. 将 lib 更改为expo-camerareact-native-vision-camera ,因为它们在mainActivity上使用相机但需要无聊的重新实现,并且看起来不如制造商原生相机。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM