expo-camera takePictureAsync() not working on Android

Viewed 317

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!

1 Answers

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

Related