简体   繁体   中英

expo-camera takePictureAsync() not working on Android

I recently updated several lines of code in a managed expo project, unrelated to the camera functionality. It still works fine on iOS, only Android does not work. I had released a previous version one month ago that worked well. When I revert back to the old commit from then, though, it also does not work on Android (iOS fine).

  • expo 44.0.6
  • expo-camera 12.1.2
  • react 17.0.1
  • react-native 0.64.3

There is no issue launching the camera, etc. Rather, the issue occurs at takePictureAsync, which hangs and then does not return anything.

const snapPic = async () => {
    const { status } = await Camera.getCameraPermissionsAsync();
    if (status != 'granted') {
        alert('Please grant access to camera and retry.');
        await Camera.requestCameraPermissionsAsync();
        return;
    }
    const options = { quality: 0.1 };
    const photo = await this.camera.takePictureAsync(options);
    this.camera.pausePreview();
    this.setState({imageSource: photo.uri});
};

<Camera style={styles.cameraBox} ref={ref => {this.camera = ref}} />

Please let me know what other information I can provide, if necessary. Thanks in advance!

Instead of pause preview method. Try it with skipProcessing to false inside option object

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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